Hi everyone,

after running the test script myself and thinking I a bit, I found the
reason why it fails:

Coreutils nice expects a priority range from 0 to 39 (mapped to -20..19
for the user) but Mach only provides 0..31.  The POSIX layer in libc now
attempts to convert these values to the respective ranges, but because
Mach does not provide the full range, it has to divide by 2 and
therefore loses accuracy:  Odd values are rounded down to even, which
is, of course, a behavior that the test doesn't like.

My proposal is to change the mapping policy and map 0..39 to 0..31
discarding the 8 lowest possible priorites.  Priorities below the
default priority (0 to the user) do not work properly anyway right now.
Once they work, it will not hurt too badly if the range is only partly
accessible.

Changing the conversion algorithm would be a trivial patch.

On IRC, Neal had come up with another proposal for a change in the libc
POSIX layer that uses a kind of caching, but I had not really
understood.
Neal, could you state your idea here to everyone?

SÃren



_______________________________________________
Bug-hurd mailing list
Bug-hurd@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-hurd

Reply via email to