From patchwork Wed Oct 30 17:47:35 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Easwar Hariharan X-Patchwork-Id: 13856984 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2A9A1199FA0; Wed, 30 Oct 2024 17:47:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=13.77.154.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1730310478; cv=none; b=ooB7/y73xlhyGj1ptocOT95SaPxqu/V1XUXQJJTZ4i29M3vCBrvxPawaBsjp+Du4rWbhL5CV9PomblJAOs85UDkls31eVr0VW3TvnvO+r3FlhIcetDTgK65DzciOtiC6wXOIAheLtYAjqdE0h/LgIpMiG6ywyJlF6KF8HAGJ7gQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1730310478; c=relaxed/simple; bh=Sy/XcrnSG/n3m2XPnVo6TJ1sAr986PE5hlaj5H9ahsQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tndFdA21f9mGs5/LLfWhZyI+iZUHhRYxxA7WjZXubQWgAlxWEWf/gUTLgAsEX2HogGCmN/WsFVi3V0sAspBk8PGynEMNdOGOmIkWyuaEsowkRpRODvRmultzhqd5RsPAYTm0rH0zFCV3b+Lz/WgiQRfflbimX9W+QEBl38JA3LI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.microsoft.com; spf=pass smtp.mailfrom=linux.microsoft.com; dkim=pass (1024-bit key) header.d=linux.microsoft.com header.i=@linux.microsoft.com header.b=tCCRp7Bb; arc=none smtp.client-ip=13.77.154.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.microsoft.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.microsoft.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.microsoft.com header.i=@linux.microsoft.com header.b="tCCRp7Bb" Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99]) by linux.microsoft.com (Postfix) with ESMTPSA id 9C60E2054B68; Wed, 30 Oct 2024 10:47:50 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 9C60E2054B68 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1730310470; bh=mrrwKYSM5C8NsFUuz9eD0QAcHgQ/zcwrN5HhAbKheYA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=tCCRp7BbtrTVmfK05wpvWDk/LSQlwAxWacYodBBq7jlVVJcbvqxQHe+Cp57/p3SiC vsCbrBpkmYoYPXGfQs0exj1WHQ9LXJfYFfosuvAaz6OZ7itEaZbF+DKuQUsvPucVBd T9Zr5xKvjc9VnaYadxN7zUnvUISkpH0OtQ0nE+yc= From: Easwar Hariharan Date: Wed, 30 Oct 2024 17:47:35 +0000 Subject: [PATCH v3 1/2] jiffies: Define secs_to_jiffies() Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20241030-open-coded-timeouts-v3-1-9ba123facf88@linux.microsoft.com> References: <20241030-open-coded-timeouts-v3-0-9ba123facf88@linux.microsoft.com> In-Reply-To: <20241030-open-coded-timeouts-v3-0-9ba123facf88@linux.microsoft.com> To: "K. Y. Srinivasan" , Haiyang Zhang , Wei Liu , Dexuan Cui , linux-hyperv@vger.kernel.org, Anna-Maria Behnsen , Thomas Gleixner , Geert Uytterhoeven , Marcel Holtmann , Johan Hedberg , Luiz Augusto von Dentz , linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org, Praveen Kumar , Naman Jain Cc: Michael Kelley , Easwar Hariharan , Luiz Augusto von Dentz X-Mailer: b4 0.14.2 secs_to_jiffies() is defined in hci_event.c and cannot be reused by other call sites. Hoist it into the core code to allow conversion of the ~1150 usages of msecs_to_jiffies() that either: - use a multiplier value of 1000 or equivalently MSEC_PER_SEC, or - have timeouts that are denominated in seconds (i.e. end in 000) This will also allow conversion of yet more sites that use (sec * HZ) directly, and improve their readability. TO: K. Y. Srinivasan TO: Haiyang Zhang TO: Wei Liu TO: Dexuan Cui TO: linux-hyperv@vger.kernel.org TO: Anna-Maria Behnsen TO: Thomas Gleixner TO: Geert Uytterhoeven TO: Marcel Holtmann TO: Johan Hedberg TO: Luiz Augusto von Dentz TO: linux-bluetooth@vger.kernel.org TO: linux-kernel@vger.kernel.org Suggested-by: Michael Kelley Reviewed-by: Luiz Augusto von Dentz Signed-off-by: Easwar Hariharan --- include/linux/jiffies.h | 12 ++++++++++++ net/bluetooth/hci_event.c | 2 -- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h index 1220f0fbe5bf9fb6c559b4efd603db3e97db9b65..e17c220ed56e587fd55fb9cf4a133a53588af940 100644 --- a/include/linux/jiffies.h +++ b/include/linux/jiffies.h @@ -526,6 +526,18 @@ static __always_inline unsigned long msecs_to_jiffies(const unsigned int m) } } +/** + * secs_to_jiffies: - convert seconds to jiffies + * @_secs: time in seconds + * + * Conversion is done by simple multiplication with HZ + * secs_to_jiffies() is defined as a macro rather than a static inline + * function due to its potential application in struct initializers. + * + * Return: jiffies value + */ +#define secs_to_jiffies(_secs) ((_secs) * HZ) + extern unsigned long __usecs_to_jiffies(const unsigned int u); #if !(USEC_PER_SEC % HZ) static inline unsigned long _usecs_to_jiffies(const unsigned int u) diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index 0bbad90ddd6f87e87c03859bae48a7901d39b634..7b35c58bbbeb79f2b50a02212771fb283ba5643d 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -42,8 +42,6 @@ #define ZERO_KEY "\x00\x00\x00\x00\x00\x00\x00\x00" \ "\x00\x00\x00\x00\x00\x00\x00\x00" -#define secs_to_jiffies(_secs) msecs_to_jiffies((_secs) * 1000) - /* Handle HCI Event packets */ static void *hci_ev_skb_pull(struct hci_dev *hdev, struct sk_buff *skb, From patchwork Wed Oct 30 17:47:36 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Easwar Hariharan X-Patchwork-Id: 13856985 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2A9F419A288; Wed, 30 Oct 2024 17:47:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=13.77.154.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1730310478; cv=none; b=s7gpJPqTZPiPDu/+fMbYJkdndytM/FAlEYn3wL3oxEv4J3A+jCoMH+raq7Qfi1Lst2Q5PDtfra8XjQKoQ4+JMvmexz5PLTIAKb1LuXBL29bWdEj2pX5RN3n7abiY9mMEzdtuLv0/hKOw4CiO6PxLqG5dCdRKKLzZYhfH3i/M1pI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1730310478; c=relaxed/simple; bh=Y412xZzNOO5MY5f54d4tqDx7k+RoU/X0XQaCOxzYaA0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=K0Cs8d/1wCr/l3AFSdI8ukiqyj6OMs86Tvg/afmZs67AXuEXBnTTfbFYEZWLCI9gW7bYUjfD1TZsGziAEqhXBSZSZ4KbFvP3p/kSjOyT3HR/4cFJyrcqr/4pW/b30XIoejHacafNNNF1r9ZKOlBhg5WX8cWkNLrD4XVq4TOuNeo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.microsoft.com; spf=pass smtp.mailfrom=linux.microsoft.com; dkim=pass (1024-bit key) header.d=linux.microsoft.com header.i=@linux.microsoft.com header.b=UgCdEVzu; arc=none smtp.client-ip=13.77.154.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.microsoft.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.microsoft.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.microsoft.com header.i=@linux.microsoft.com header.b="UgCdEVzu" Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99]) by linux.microsoft.com (Postfix) with ESMTPSA id B85E72054B69; Wed, 30 Oct 2024 10:47:50 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com B85E72054B69 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1730310470; bh=bwsyKqQWUa0Kwp+K5MBC5j2XBjYIf72PRYb9FH/rEwY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=UgCdEVzurzBU+c8+arct7OHOSd0yrqb5/vHvfhed2xVDqVDS4AomkKuo0NGX43Epj TK6Fn8unpF00LFLpdszi5GI6gi2r9zrl0tS/xupPDbqZ/gweAA68JB02GhPal18H1b RNWS9USCx69f4ue8YEpBMHgt2hPJpSsxri4qqVzw= From: Easwar Hariharan Date: Wed, 30 Oct 2024 17:47:36 +0000 Subject: [PATCH v3 2/2] drivers: hv: Convert open-coded timeouts to secs_to_jiffies() Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20241030-open-coded-timeouts-v3-2-9ba123facf88@linux.microsoft.com> References: <20241030-open-coded-timeouts-v3-0-9ba123facf88@linux.microsoft.com> In-Reply-To: <20241030-open-coded-timeouts-v3-0-9ba123facf88@linux.microsoft.com> To: "K. Y. Srinivasan" , Haiyang Zhang , Wei Liu , Dexuan Cui , linux-hyperv@vger.kernel.org, Anna-Maria Behnsen , Thomas Gleixner , Geert Uytterhoeven , Marcel Holtmann , Johan Hedberg , Luiz Augusto von Dentz , linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org, Praveen Kumar , Naman Jain Cc: Michael Kelley , Easwar Hariharan X-Mailer: b4 0.14.2 We have several places where timeouts are open-coded as N (seconds) * HZ, but best practice is to use the utility functions from jiffies.h. Convert the timeouts to be compliant. This doesn't fix any bugs, it's a simple code improvement. TO: "K. Y. Srinivasan" TO: Haiyang Zhang TO: Wei Liu TO: Dexuan Cui TO: linux-hyperv@vger.kernel.org TO: Anna-Maria Behnsen TO: Thomas Gleixner TO: Geert Uytterhoeven TO: Marcel Holtmann TO: Johan Hedberg TO: Luiz Augusto von Dentz TO: linux-bluetooth@vger.kernel.org TO: linux-kernel@vger.kernel.org CC: Michael Kelley Signed-off-by: Easwar Hariharan Reviewed-by: Michael Kelley --- drivers/hv/hv_balloon.c | 9 +++++---- drivers/hv/hv_kvp.c | 4 ++-- drivers/hv/hv_snapshot.c | 3 ++- drivers/hv/vmbus_drv.c | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/hv/hv_balloon.c b/drivers/hv/hv_balloon.c index c38dcdfcb914dcc3515be100cba0beb4a3f9b975..a99112e6f0b8534cf5c8c963e343019061bd34f6 100644 --- a/drivers/hv/hv_balloon.c +++ b/drivers/hv/hv_balloon.c @@ -756,7 +756,7 @@ static void hv_mem_hot_add(unsigned long start, unsigned long size, * adding succeeded, it is ok to proceed even if the memory was * not onlined in time. */ - wait_for_completion_timeout(&dm_device.ol_waitevent, 5 * HZ); + wait_for_completion_timeout(&dm_device.ol_waitevent, secs_to_jiffies(5)); post_status(&dm_device); } } @@ -1373,7 +1373,8 @@ static int dm_thread_func(void *dm_dev) struct hv_dynmem_device *dm = dm_dev; while (!kthread_should_stop()) { - wait_for_completion_interruptible_timeout(&dm_device.config_event, 1 * HZ); + wait_for_completion_interruptible_timeout(&dm_device.config_event, + secs_to_jiffies(1)); /* * The host expects us to post information on the memory * pressure every second. @@ -1748,7 +1749,7 @@ static int balloon_connect_vsp(struct hv_device *dev) if (ret) goto out; - t = wait_for_completion_timeout(&dm_device.host_event, 5 * HZ); + t = wait_for_completion_timeout(&dm_device.host_event, secs_to_jiffies(5)); if (t == 0) { ret = -ETIMEDOUT; goto out; @@ -1806,7 +1807,7 @@ static int balloon_connect_vsp(struct hv_device *dev) if (ret) goto out; - t = wait_for_completion_timeout(&dm_device.host_event, 5 * HZ); + t = wait_for_completion_timeout(&dm_device.host_event, secs_to_jiffies(5)); if (t == 0) { ret = -ETIMEDOUT; goto out; diff --git a/drivers/hv/hv_kvp.c b/drivers/hv/hv_kvp.c index d35b60c0611486c8c909d2f8f7c730ff913df30d..29e01247a0870fdb9eebd92bdd16fd371450240c 100644 --- a/drivers/hv/hv_kvp.c +++ b/drivers/hv/hv_kvp.c @@ -655,7 +655,7 @@ void hv_kvp_onchannelcallback(void *context) if (host_negotiatied == NEGO_NOT_STARTED) { host_negotiatied = NEGO_IN_PROGRESS; schedule_delayed_work(&kvp_host_handshake_work, - HV_UTIL_NEGO_TIMEOUT * HZ); + secs_to_jiffies(HV_UTIL_NEGO_TIMEOUT)); } return; } @@ -724,7 +724,7 @@ void hv_kvp_onchannelcallback(void *context) */ schedule_work(&kvp_sendkey_work); schedule_delayed_work(&kvp_timeout_work, - HV_UTIL_TIMEOUT * HZ); + secs_to_jiffies(HV_UTIL_TIMEOUT)); return; diff --git a/drivers/hv/hv_snapshot.c b/drivers/hv/hv_snapshot.c index 0d2184be16912559a8cfa784c762e6418ebd3279..86d87486ed40b3ca9f6674650e5a86a7184e2fa6 100644 --- a/drivers/hv/hv_snapshot.c +++ b/drivers/hv/hv_snapshot.c @@ -193,7 +193,8 @@ static void vss_send_op(void) vss_transaction.state = HVUTIL_USERSPACE_REQ; schedule_delayed_work(&vss_timeout_work, op == VSS_OP_FREEZE ? - VSS_FREEZE_TIMEOUT * HZ : HV_UTIL_TIMEOUT * HZ); + secs_to_jiffies(VSS_FREEZE_TIMEOUT) : + secs_to_jiffies(HV_UTIL_TIMEOUT)); rc = hvutil_transport_send(hvt, vss_msg, sizeof(*vss_msg), NULL); if (rc) { diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c index 9b15f7daf5059750e17ea3607b52dee967c1c059..7db30881e83ad4b406413641413d68329fc663e2 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c @@ -2507,7 +2507,7 @@ static int vmbus_bus_resume(struct device *dev) vmbus_request_offers(); if (wait_for_completion_timeout( - &vmbus_connection.ready_for_resume_event, 10 * HZ) == 0) + &vmbus_connection.ready_for_resume_event, secs_to_jiffies(10)) == 0) pr_err("Some vmbus device is missing after suspending?\n"); /* Reset the event for the next suspend. */