From: Gui J. <gui...@cn...> - 2010-11-15 03:21:07
|
Gui Jianfeng wrote: > Garrett Cooper wrote: >> On Sun, Nov 7, 2010 at 8:09 PM, Gui Jianfeng <gui...@cn...> wrote: >>> Gui Jianfeng wrote: >>>> This case is trying to set CPU-time clock(ID is returned by clock_getcpuclockid()) of >>>> a specific process by calling clock_settime(). But Linux kernel doesn't allow to reset >>>> a CPU-time clock of a specific process. Kernel returns -EPERM. So test fails. >>>> >>>> In "IEEE Std 1003.1, 2004 Edition", It's said as following: >>>> If _POSIX_CPUTIME is defined, implementations shall support clock ID values obtained by >>>> invoking clock_getcpuclockid(), which represent the CPU-time clock of a given process. >>>> Implementations shall also support the special clockid_t value CLOCK_PROCESS_CPUTIME_ID, >>>> which represents the CPU-time clock of the calling process when invoking one of the >>>> clock_*() or timer_*() functions. For these clock IDs, the values returned by >>>> clock_gettime() and specified by clock_settime() represent the amount of execution time >>>> of the process associated with the clock. Changing the value of a CPU-time clock via >>>> clock_settime() shall have no effect on the behavior of the sporadic server scheduling >>>> policy. >>>> >>>> So the behaviour when changing the value of a CPU-time clock via clock_settime() is >>>> operating system specific. >>>> >>>> We may change the test progress to stop using clock_settime(). Now, We just make use >>>> of clock_gettime() instead to achieve the same test purpose. >>>> >>>> Signed-off-by: Gui Jianfeng <gui...@cn...> >>> Hi Garrett, >>> >>> How do you think this fix? >> The tort is the same in POSIX 2008.1. Taking out the chaff... >> >> a. If _POSIX_CPUTIME is defined, implementations shall support clock >> ID values obtained by invoking clock_getcpuclockid(), which represent >> the CPU-time clock of a given process. >> b. Implementations shall also support the special clockid_t value >> CLOCK_PROCESS_CPUTIME_ID, which represents the CPU-time clock of the >> calling process when invoking one of the clock_*() or timer_*() >> functions. >> c. For these clock IDs, the values returned by clock_gettime() and >> specified by clock_settime() represent the amount of execution time of >> the process associated with the clock. >> >> Nowhere does it say that you can't set that clock. Try running the >> test as root to see what you can do... if the test fails (even as >> root), then Linux needs to be fixed to conform to POSIX. > > POSIX also says that: > Changing the value of a CPU-time clock via clock_settime() shall have no effect > on the behavior of the sporadic server scheduling policy. > > IMHO, this means clock_settime() implementation is OS specific, is it? > So, even if Linux fails to set this clock, it's just fine. Am i missing something? Hi Garrett, If you don't object, would you apply this patch? Gui > > Gui > >> Also, try running the other tests I just added to see whether or not >> the function call fails per POSIX's requirements. >> >> Thanks! >> -Garrett >> > > ------------------------------------------------------------------------------ > The Next 800 Companies to Lead America's Growth: New Video Whitepaper > David G. Thomson, author of the best-selling book "Blueprint to a > Billion" shares his insights and actions to help propel your > business during the next growth cycle. Listen Now! > http://p.sf.net/sfu/SAP-dev2dev > _______________________________________________ > Ltp-list mailing list > Ltp...@li... > https://lists.sourceforge.net/lists/listinfo/ltp-list > |