Same behavior for a new syscall created from scratch. On Friday, February 25, 2011, Enrico Granata <egranata@xxxxxxxx> wrote: > We already ruled that out this morning. The code is now using syscall() directly:inline long mygetpid() { return syscall(SYS_getpid);} > > > Enrico GranataComputer Science & Engineering Department (EBU3B) - Room 3240office phone 858 534 9914University of California, San Diego > > > On Feb 25, 2011, at 12:59 PM, Jim Kukunas wrote: > On Fri, Feb 25, 2011 at 12:42 PM, Enrico Granata <egranata@xxxxxxxx> wrote: > > > I modified the source code to show exactly how many clock ticks it is taking > for each call. It seems that the behavior hinted by Mauro Romano Trajber is > actually there: > [enrico@espresso ~]$ ./syscallperf 15 > 4925 > 1190 > 942 > 942 > 935 > 942 > 636 > 577 > 627 > 621 > 580 > 591 > 565 > 580 > 565 > I am starting to wonder if this depends on the syscall itself OR on some > call optimization.. any gcc experts around? > > From the getpid(2) manpage: > > "Since glibc version 2.3.4, the glibc wrapper function for getpid() > caches PIDs, so as to avoid additional system calls when a process > calls getpid() repeatedly." > > > Enrico Granata > Computer Science & Engineering Department (EBU3B) - Room 3240 > office phone 858 534 9914 > University of California, San Diego > On Feb 25, 2011, at 12:30 PM, Mauro Romano Trajber wrote: > > Sure, the code is attached. > > On Fri, Feb 25, 2011 at 5:15 PM, Daniel Baluta <daniel.baluta@xxxxxxxxx> > wrote: > > On Fri, Feb 25, 2011 at 8:22 PM, Mauro Romano Trajber <trajber@xxxxxxxxx> > wrote: > Thanks Enrico and Daniel, you're right. glibc was caching getpid(); but > this > is not the root cause of this behavior. > Going further, I decide to use call getpid without glibc, using > syscall(SYS_getpid) to test this behavior and it happened again. > Calling it once, the test consumes about 7k CPU cycles and 10 calls > consumes > about 10k CPU cycles. > Any ideas ? > > Can you post a pointer to your code and information about how you got > this numbers? > > thanks, > Daniel. > > <syscallperf.c> > _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies