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"