Re: Device Mapper

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

 



Just use strace and u can see all the system call made to the kernel.
 The concept is that any userspace application always go through the
system call to reach the kernel, although some assembly insn (eg,
sysenter) may get u directly into kernel as well.   so from the system
call trace, and then u extract out all the open() API, u can see a lot
of device specific handling parts of the program.

So for example for pvcreate:

open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/lib/libdevmapper.so.1.02", O_RDONLY) = 3
open("/lib/librt.so.1", O_RDONLY)       = 3
open("/lib/libdl.so.2", O_RDONLY)       = 3
open("/lib/libc.so.6", O_RDONLY)        = 3
open("/lib/libpthread.so.0", O_RDONLY)  = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
open("/usr/lib/locale/en_US.UTF-8/LC_CTYPE", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_CTYPE", O_RDONLY) = 3
open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 3
open("/etc/lvm/lvm.conf", O_RDONLY|O_LARGEFILE) = 3
open("/etc/localtime", O_RDONLY)        = 3
open("/proc/mounts", O_RDONLY|O_LARGEFILE) = 3
open("/proc/devices", O_RDONLY)         = 3
open("/etc/lvm/.cache", O_RDONLY|O_LARGEFILE) = 3
open("/var/lock/lvm/P_orphans", O_RDWR|O_APPEND|O_CREAT|O_LARGEFILE, 0777) = 3
open("/dev", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/proc/meminfo", O_RDONLY)         = 4
open("/dev/bus", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/bus/usb/001", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/bus/usb/002", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/disk", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/disk/by-id", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/disk/by-label", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/disk/by-path", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/disk/by-uuid", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/input", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/input/by-id", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/input/by-path", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/mapper", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/net", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/pts", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/shm", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/shm/sysconfig", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/shm/sysconfig/tmp", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/dev/snd", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
open("/var/lock/lvm/P_orphans", O_RDWR|O_APPEND|O_CREAT|O_LARGEFILE, 0777) = 3

>From each of the different devices above, u should be able to map back
the kernel source that implement these opening.

On Thu, Sep 11, 2008 at 1:51 AM, rohit vashist
<rohitvashist2kk3@xxxxxxxxx> wrote:
> Hi,
> I am currently working on device mapper and logical volume manager.
> Can anyone tell me that which function is an entry point for
> lvcreate,pvcreate and vgcreate in kernel.
>  Thank You
>  Rohit  Vashist



-- 
Regards,
Peter Teoh

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux