From owner-svn-src-all@freebsd.org Sat Mar 3 19:28:31 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 348F7F34940; Sat, 3 Mar 2018 19:28:31 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [88.99.82.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9D992724CF; Sat, 3 Mar 2018 19:28:30 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2016.home.selasky.org (unknown [62.141.128.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id D82722601A6; Sat, 3 Mar 2018 20:28:28 +0100 (CET) Subject: Re: svn commit: r330352 - in head/sys/compat/linuxkpi/common: include/linux src To: Ian Lepore , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201803031854.w23IsHxm086835@repo.freebsd.org> <1520104482.23690.15.camel@freebsd.org> From: Hans Petter Selasky Message-ID: <3534a8fa-4018-9b35-47cd-6ffa72a0c2b6@selasky.org> Date: Sat, 3 Mar 2018 20:28:26 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <1520104482.23690.15.camel@freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Mar 2018 19:28:31 -0000 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 >>   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