Re: [PATCH] add a new command: ipcs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At 2012/4/11 22:50, Dave Anderson Wrote:


----- Original Message -----
Hello Dave,

I cannot get all kernels at hand. So I have to ask you about the code.
Please show me.

Why not?  Just download the upstream kernels from here:

   http://www.kernel.org/pub/linux/kernel/v2.6/


(a) On these kernel versions:

      2.6.9-89.ELxenU
      2.6.15-1.2054_FC5
      2.6.16.33-xen
      2.6.18-1.2714.el5xen
      2.6.18-36.el5xen
      2.6.18-58.el5xen
      2.6.18-152.el5xen
      2.6.31 uniprocessor kernel

      the command fails immediatedly with this error:

        ipcs: cannot resolve "hugetlbfs_file_operations"


(b) On *all* RHEL5 2.6.18-era kernels, the message queue display
      always fails like this:

      ------ Message Queues --------
      KEY        MSQID      UID        PERMS      USED-BYTES
        MESSAGES
      ipcs: invalid structure member offset: kern_ipc_perm_id
            FILE: ipcs.c  LINE: 899  FUNCTION: get_msg_info()

I want to see the struct msg_queue and struct struct kern_ipc_perm.

Here is the output from a RHEL5 kernel:

  crash>  msg_queue
  struct msg_queue {
      struct kern_ipc_perm q_perm;
      int q_id;
      time_t q_stime;
      time_t q_rtime;
      time_t q_ctime;
      long unsigned int q_cbytes;
      long unsigned int q_qnum;
      long unsigned int q_qbytes;
      pid_t q_lspid;
      pid_t q_lrpid;
      struct list_head q_messages;
      struct list_head q_receivers;
      struct list_head q_senders;
  }
  SIZE: 160
  crash>  kern_ipc_perm
  struct kern_ipc_perm {
      spinlock_t lock;
      int deleted;
      key_t key;
      uid_t uid;
      gid_t gid;
      uid_t cuid;
      gid_t cgid;
      mode_t mode;
      long unsigned int seq;
      void *security;
  }
  SIZE: 48
  crash>

which is the same as the upstream 2.6.18 kernel.

Ahh, I khow the reason now: msg_queue_q_id is not initialized!!!!



(c) On this 2.6.36-0.16.rc3.git0.fc15 Fedora kernel, it shows:

      ------ Shared Memory Segments ------
      KEY        SHMID      UID        PERMS      BYTES      NATTCH
          STATUS
      ipcs: invalid kernel virtual address: 10  type: "nsproxy.ipc_ns"

what is struct nsproxy? Or is there any symbol referring to ipc_ns?

  crash>  nsproxy
  struct nsproxy {
      atomic_t count;
      struct uts_namespace *uts_ns;
      struct ipc_namespace *ipc_ns;
      struct mnt_namespace *mnt_ns;
      struct pid_namespace *pid_ns;
      struct net *net_ns;
  }
  SIZE: 48
  crash>

It's the same as upstream 2.6.36, but it's not the offset that's invalid,
it's the NULL "nsproxy" address.

I am surprised that nsproxy is NULL.

Each user task belongs to a namesapce, so current_task.nsproxy should not
be NULL. I guess the current task may be a kernel thread in your test.

Thanks
Wen Congyang





(d) On *all* RHEL4 2.6.9-era and SLES9 2.6.5-era kernels, the
command fail like this:

      ------ Shared Memory Segments ------
      KEY        SHMID      UID        PERMS      BYTES      NATTCH
          STATUS
      ipcs: invalid structure member offset: ipc_id_ary_p
            FILE: ipcs.c  LINE: 540  FUNCTION: ipc_search_array()

      or this:

      ------ Shared Memory Segments ------
      KEY        SHMID      UID        PERMS      BYTES      NATTCH
          STATUS
      (none allocated)------ Semaphore Arrays --------
      KEY        SEMID      UID        PERMS      NSEMS
      ipcs: invalid structure member offset: ipc_id_ary_p
            FILE: ipcs.c  LINE: 540  FUNCTION: ipc_search_array()


what is struct ipc_id? And what is entries in struct ipc_id or something
similar to it?

This is from a RHEL4 kernel -- and the upstream 2.6.9 kernel is the same:

  crash>  ipc_id
  struct ipc_id {
      struct kern_ipc_perm *p;
  }
  SIZE: 8
  crash>  kern_ipc_perm
  struct kern_ipc_perm {
      spinlock_t lock;
      int deleted;
      key_t key;
      uid_t uid;
      gid_t gid;
      uid_t cuid;
      gid_t cgid;
      mode_t mode;
      long unsigned int seq;
      void *security;
  }
  SIZE: 56
  crash>

Dave




--
Crash-utility mailing list
Crash-utility@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/crash-utility


--
Crash-utility mailing list
Crash-utility@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/crash-utility


[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux