Re: [PATCH v3 1/2] jiffies: Define secs_to_jiffies()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/31/2024 8:54 AM, Haiyang Zhang wrote:
> 
> 
>> -----Original Message-----
>> From: Easwar Hariharan <eahariha@xxxxxxxxxxxxxxxxxxx>
>> Sent: Wednesday, October 30, 2024 1:48 PM
>> To: KY Srinivasan <kys@xxxxxxxxxxxxx>; Haiyang Zhang
>> <haiyangz@xxxxxxxxxxxxx>; Wei Liu <wei.liu@xxxxxxxxxx>; Dexuan Cui
>> <decui@xxxxxxxxxxxxx>; linux-hyperv@xxxxxxxxxxxxxxx; Anna-Maria Behnsen
>> <anna-maria@xxxxxxxxxxxxx>; Thomas Gleixner <tglx@xxxxxxxxxxxxx>; Geert
>> Uytterhoeven <geert@xxxxxxxxxxxxxx>; Marcel Holtmann
>> <marcel@xxxxxxxxxxxx>; Johan Hedberg <johan.hedberg@xxxxxxxxx>; Luiz
>> Augusto von Dentz <luiz.dentz@xxxxxxxxx>; linux-
>> bluetooth@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Praveen Kumar
>> <kumarpraveen@xxxxxxxxxxxxxxxxxxx>; Naman Jain
>> <namjain@xxxxxxxxxxxxxxxxxxx>
>> Cc: Michael Kelley <mhklinux@xxxxxxxxxxx>; Easwar Hariharan
>> <eahariha@xxxxxxxxxxxxxxxxxxx>; Von Dentz, Luiz
>> <luiz.von.dentz@xxxxxxxxx>
>> Subject: [PATCH v3 1/2] jiffies: Define secs_to_jiffies()
>>
>> 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 <kys@xxxxxxxxxxxxx>
>> TO: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
>> TO: Wei Liu <wei.liu@xxxxxxxxxx>
>> TO: Dexuan Cui <decui@xxxxxxxxxxxxx>
>> TO: linux-hyperv@xxxxxxxxxxxxxxx
>> TO: Anna-Maria Behnsen <anna-maria@xxxxxxxxxxxxx>
>> TO: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
>> TO: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
>> TO: Marcel Holtmann <marcel@xxxxxxxxxxxx>
>> TO: Johan Hedberg <johan.hedberg@xxxxxxxxx>
>> TO: Luiz Augusto von Dentz <luiz.dentz@xxxxxxxxx>
>> TO: linux-bluetooth@xxxxxxxxxxxxxxx
>> TO: linux-kernel@xxxxxxxxxxxxxxx
>> Suggested-by: Michael Kelley <mhklinux@xxxxxxxxxxx>
>> Reviewed-by: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx>
>> Signed-off-by: Easwar Hariharan <eahariha@xxxxxxxxxxxxxxxxxxx>
>> ---
>>  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..e17c220ed56e587fd55fb9cf4a133a5
>> 3588af940 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..7b35c58bbbeb79f2b50a02212771fb2
>> 83ba5643d 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,
>>
>> --
>> 2.34.1
> 
> All looks good.
> But can you consider naming the macro as s2jiffy()? Just
> to be shorter, so after adopting this macro we don't have
> to split some lines for over 80 characters:)
> 
> Thanks,
> - Haiyang
> 

Thanks for the review! The patch introducing the macro has already been
accepted into timers/core in tip[1], so unfortunately I can't make that
change anymore. For readability considerations, I also find it better to
match the remaining APIs in the jiffies family, i.e. msecs_to_jiffies(),
nsecs_to_jiffies(), usecs_to_jiffies().

[1] https://git.kernel.org/tip/b35108a51cf7bab58d7eace1267d7965978bcdb8

Thanks,
Easwar




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux