> 5. What if the TSC is not available as a usable timecounter?  In that
>    case libc should fall back on the system call.  But we need a way
>    to communicate what the timecounter is and detect when we switch
>    timecounters.  Maybe adding a timecounter ID to the page will help
>    here.  But then MD code in libc will have to check the ID and
>    dispatch to the right timecounter read function.

I fixed 1--4 and 6, but with 5 the solutions I found are a bit
convoluted and involve string passing and parsing if we are to pass this
information to libc.

Would it be acceptable to add a memember to struct timecounter that
states whether the clock is libc ready or not? This means that when you
add support for a new clock in libc you also have to touch the kernel to
set that bit...

On the other hand the code would be clean and safe:

if (timekeep == NULL || timekeep->tc_supported)
        clock_gettime();

/* rest of wrapper function */

What do you think?

Reply via email to