On 03/03/18 20:14, Ian Lepore wrote:
On Sat, 2018-03-03 at 18:54 +0000, Hans Petter Selasky wrote:
Author: hselasky
Date: Sat Mar  3 18:54:16 2018
New Revision: 330352
URL: https://svnweb.freebsd.org/changeset/base/330352

Log:
   Implement msleep_interruptible() in the LinuxKPI. While at it use pause_sbt()
   instead of pause() in the msleep() function to avoid rounding errors when
   converting delay values forth and back. Add a guard for a delay value
   of zero milliseconds which is undefined.
  MFC after: 1 week
   Requested by:        Johannes Lundberg <johal...@gmail.com>
   Sponsored by:        Mellanox Technologies

Modified:
   head/sys/compat/linuxkpi/common/include/linux/delay.h
   head/sys/compat/linuxkpi/common/src/linux_schedule.c

Modified: head/sys/compat/linuxkpi/common/include/linux/delay.h
==============================================================================
--- head/sys/compat/linuxkpi/common/include/linux/delay.h       Sat Mar  3 
18:52:19 2018        (r330351)
+++ head/sys/compat/linuxkpi/common/include/linux/delay.h       Sat Mar  3 
18:54:16 2018        (r330352)
@@ -36,14 +36,20 @@
  #include
 static inline void
-linux_msleep(int ms)
+linux_msleep(unsigned int ms)
  {
-       pause("lnxsleep", msecs_to_jiffies(ms));
+       /* guard against invalid values */
+       if (ms == 0)
+               ms = 1;
+       pause_sbt("lnxsleep", SBT_1MS * ms, 0, C_HARDCLOCK);
  }

To really avoid roundoff errors, use mstosbt(ms) instead of SBT_1MS*ms.


You're right. See r330353. Really, this only makes a noticable difference for larger timeouts.

--HPS
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to