let me answer your second question.
I did this analysis with kernel linux-3.12.6:
1) make ARCH=um cscope
2) search functions which called 'clone'
File Function Line
0 ubd_user.c start_io_thread 43 pid = clone(io_thread, (void *) sp,
CLONE_FILES |
CLONE_VM, NULL);
1 helper.c start_io_thread 74 pid = clone(helper_child, (void *) sp,
CLONE_VM, &data);
2 helper.c start_io_thread 124 pid = clone(proc, (void *) sp, flags,
arg);
3 process.c start_userspace 300 pid = clone(userspace_tramp, (void *) sp,
flags, (void *)
stub_stack);
4 lguest.c create_thread 1048 vq->thread = clone(do_thread, stack +
32768, CLONE_VM |
SIGCHLD, vq);
3) insert some printk statement in those function
4) build and run, then watch the booting process output
[root@localhost ~]# dmesg | grep 6436
[ 0.190000] run_helper_thread : clone success, pid = 6436
[root@localhost ~]# dmesg | grep 6437
[ 0.190000] start_io_thread - clone success : pid = 6437
[root@localhost ~]# dmesg | grep 6438
[ 0.190000] run_helper_thread : clone success, pid = 6438
[real@real runuml]$ ps -ef | grep patch
real 6423 1553 6 16:17 pts/0 00:00:02 ./linux_patched
ubda=./Fedora20-x86-root_fs mem=256m
real 6436 6423 0 16:17 pts/0 00:00:00 ./linux_patched
ubda=./Fedora20-x86-root_fs mem=256m
real 6437 6423 0 16:17 pts/0 00:00:00 ./linux_patched
ubda=./Fedora20-x86-root_fs mem=256m
real 6438 6423 0 16:17 pts/0 00:00:00 ./linux_patched
ubda=./Fedora20-x86-root_fs mem=256m
real 6439 6423 0 16:17 pts/0 00:00:00 [linux_patched]
real 6459 6423 0 16:17 pts/0 00:00:00 [linux_patched]
real 6479 6423 0 16:17 pts/0 00:00:00 [linux_patched]
real 6492 6423 0 16:17 pts/0 00:00:00 [linux_patched]
real 6565 6423 0 16:17 pts/0 00:00:00 [linux_patched]
real 6567 6423 0 16:17 pts/0 00:00:00 [linux_patched]
real 6572 6423 0 16:17 pts/0 00:00:00 [linux_patched]
real 6573 6423 0 16:17 pts/0 00:00:00 [linux_patched]
real 6576 6423 0 16:17 pts/0 00:00:00 [linux_patched]
real 6605 6423 0 16:17 pts/0 00:00:00 [linux_patched]
real 6619 6423 0 16:17 pts/0 00:00:00 [linux_patched]
real 6621 6423 0 16:17 pts/0 00:00:00 [linux_patched]
real 6707 6423 0 16:17 pts/0 00:00:00 [linux_patched]
real 6715 6423 0 16:17 pts/0 00:00:00 [linux_patched]
real 6765 6423 0 16:18 pts/0 00:00:00 [linux_patched]
[root@localhost ~]# dmesg | grep proc
[ 0.090000] run_helper_thread : clone success, pid = 8387, proc=0806471d
[ 0.100000] run_helper_thread : clone success, pid = 8389, proc=080663a3
[real@real linux-3.12.6]$ grep 0806471d System.map
0806471d t aio_thread
[real@real linux-3.12.6]$ grep 080663a3 System.map
080663a3 t write_sigio_thread
so, the four processes are:
1) uml kernel main thread
2) aio_thread
3) io_thread
4) write_sigio_thread
On Fri, May 30, 2014 at 9:22 AM, Nalli, Sanketh <sanketh.na...@hp.com>
wrote:
> Hi,
>
> So I start UML with the cmdline
>
> ./linux rootfstype=hostfs rw mem=1G init=/bin/bash
>
>
>
> When the bash shell comes up, I run my prog : ./my_prog
>
>
>
> 6173 pts/8 00:00:00 linux
>
> 6180 pts/8 00:00:00 linux
>
> 6181 pts/8 00:00:00 linux
>
> 6182 pts/8 00:00:00 linux
>
> 6183 pts/8 00:00:00 linux
>
> 6188 pts/8 00:00:13 linux
>
>
>
>
>
> The last item in the list with PID is 6188 is my program.
>
> I can tell because my_prog increments a counter in an infinite loop
>
> And consumes CPU cycles. It shows up on “top” as the dominant process.
>
>
>
> My question:
>
> 1. /proc/6188/exe is invalid. Why ??
>
> I mean, it doesn’t point to anything.
>
> Shouldn’t it point to my_prog or something ?
>
>
>
> 2. What do the 4 UML processes 6173, 6180, 6181, 6182 do ? (6183 is
> /bin/bash whos “exe” symlink is also doesn’t point to anything !!)
>
> 3. When a UML process, say my_prog (PID 6188) makes a system call,
> where is the system call executed – is it within the addr space of 6173
> (the UML kernel process) or 6188 (my_prog running in UML ??)
>
>
>
> -Sanketh
>
>
>
>
>
>
> ------------------------------------------------------------------------------
> Time is money. Stop wasting it! Get your web API in 5 minutes.
> www.restlet.com/download
> http://p.sf.net/sfu/restlet
> _______________________________________________
> User-mode-linux-user mailing list
> User-mode-linux-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user
>
>
------------------------------------------------------------------------------
Time is money. Stop wasting it! Get your web API in 5 minutes.
www.restlet.com/download
http://p.sf.net/sfu/restlet
_______________________________________________
User-mode-linux-user mailing list
User-mode-linux-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user