Re: process 0 (swapper)

2013-02-16 Thread Kevin Wilson
Hi,

 we see this code in proc_pid_lookup:

 tgid = name_to_int(dentry);
 if (tgid == ~0U)
 goto out;

 In other words, if you ask for pid 0, it bails and doesn't return anything.

Are you sure that this is what it cjecks?

 ~0U is not 0 but -1;

for example, try:
printf(%d\n,~0U );
printf(%x\n,~0U );
printf(%x\n,-1 );
and you get:
-1


rgs
Kevin

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: process 0 (swapper)

2013-02-16 Thread anish kumar
On Sat, 2013-02-16 at 18:48 +0200, Kevin Wilson wrote:
 Hi,
 
  we see this code in proc_pid_lookup:
 
  tgid = name_to_int(dentry);
  if (tgid == ~0U)
  goto out;
It is the error case when name can't be converted to integer i.e.
name is wrong.
 
  In other words, if you ask for pid 0, it bails and doesn't return anything.
 
 Are you sure that this is what it cjecks?
 
  ~0U is not 0 but -1;
right
 
 for example, try:
   printf(%d\n,~0U );
   printf(%x\n,~0U );
   printf(%x\n,-1 );
 and you get:
 -1
 
 
 rgs
 Kevin
 
 ___
 Kernelnewbies mailing list
 Kernelnewbies@kernelnewbies.org
 http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: process 0 (swapper)

2013-02-16 Thread Valdis . Kletnieks
On Sat, 16 Feb 2013 18:48:52 +0200, Kevin Wilson said:

  ~0U is not 0 but -1;

-ENOCAFFEINE.

You'd think that after having done kernel-level C programming since the days
of SunOS 3.1.5 and BSD 4.2 I'd k   know better. ;)


pgpBxhyWvlc2R.pgp
Description: PGP signature
___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


process 0 (swapper)

2013-02-15 Thread Kevin Wilson
Hi,
I see that the idle process (process 0) , is called swapper.


init_idle() in kernel/sched/core.c:
...
#if defined(CONFIG_SMP)
sprintf(idle-comm, %s/%d, INIT_TASK_COMM, cpu);
#endif
...
#define INIT_TASK_COMM swapper in include/linux/init_task.h

Two questions:
1) why does this  #if defined(CONFIG_SMP) here ? shouldn't we name
   it swapper also in non SMP mode ?

2) Is there a reason that we do not see it with ps aux  (and also not
under proc; there is no /proc/0).
   - 1) no process 0; processes start from 1.
   - 2)  following command gives nothing:
ps aux | grep  -i swapper


rgs,
Kevin

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies