2021-07-03 21:48:31

by kernel test robot

[permalink] [raw]
Subject: kernel/time/clocksource-wdtest.c:47:22: warning: signed shift result (0x27BC86B00) requires 35 bits to represent, but 'long' only has 32 bits

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 303392fd5c160822bf778270b28ec5ea50cab2b4
commit: 1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff clocksource: Provide kernel module to test clocksource watchdog
date: 11 days ago
config: mips-randconfig-r015-20210702 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 9eb613b2de3163686b1a4bd1160f15ac56a4b083)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install mips cross compiling tool for clang build
# apt-get install binutils-mips-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All warnings (new ones prefixed by >>):

>> kernel/time/clocksource-wdtest.c:47:22: warning: signed shift result (0x27BC86B00) requires 35 bits to represent, but 'long' only has 32 bits [-Wshift-overflow]
.mult = TICK_NSEC << JIFFIES_SHIFT, /* details above */
~~~~~~~~~ ^ ~~~~~~~~~~~~~
1 warning generated.


vim +/long +47 kernel/time/clocksource-wdtest.c

39
40 static struct clocksource clocksource_wdtest_jiffies = {
41 .name = "wdtest-jiffies",
42 .rating = 1, /* lowest valid rating*/
43 .uncertainty_margin = TICK_NSEC,
44 .read = wdtest_jiffies_read,
45 .mask = CLOCKSOURCE_MASK(32),
46 .flags = CLOCK_SOURCE_MUST_VERIFY,
> 47 .mult = TICK_NSEC << JIFFIES_SHIFT, /* details above */
48 .shift = JIFFIES_SHIFT,
49 .max_cycles = 10,
50 };
51

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (2.29 kB)
.config.gz (27.62 kB)
Download all attachments

2021-07-04 17:44:39

by Paul E. McKenney

[permalink] [raw]
Subject: Re: kernel/time/clocksource-wdtest.c:47:22: warning: signed shift result (0x27BC86B00) requires 35 bits to represent, but 'long' only has 32 bits

On Sun, Jul 04, 2021 at 05:42:36AM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 303392fd5c160822bf778270b28ec5ea50cab2b4
> commit: 1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff clocksource: Provide kernel module to test clocksource watchdog
> date: 11 days ago
> config: mips-randconfig-r015-20210702 (attached as .config)
> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 9eb613b2de3163686b1a4bd1160f15ac56a4b083)
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # install mips cross compiling tool for clang build
> # apt-get install binutils-mips-linux-gnu
> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff
> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout 1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <[email protected]>
>
> All warnings (new ones prefixed by >>):
>
> >> kernel/time/clocksource-wdtest.c:47:22: warning: signed shift result (0x27BC86B00) requires 35 bits to represent, but 'long' only has 32 bits [-Wshift-overflow]
> .mult = TICK_NSEC << JIFFIES_SHIFT, /* details above */
> ~~~~~~~~~ ^ ~~~~~~~~~~~~~
> 1 warning generated.

You have CONFIG_HZ_24=y and this test module assumes HZ > 100, as noted
just above the excerpt below:

/* Assume HZ > 100. */
#define JIFFIES_SHIFT 8

So this is expected behavior.

Would it help if I gave that comment some teeth, for example, as
shown at the end of this email?

> vim +/long +47 kernel/time/clocksource-wdtest.c
>
> 39
> 40 static struct clocksource clocksource_wdtest_jiffies = {
> 41 .name = "wdtest-jiffies",
> 42 .rating = 1, /* lowest valid rating*/
> 43 .uncertainty_margin = TICK_NSEC,
> 44 .read = wdtest_jiffies_read,
> 45 .mask = CLOCKSOURCE_MASK(32),
> 46 .flags = CLOCK_SOURCE_MUST_VERIFY,
> > 47 .mult = TICK_NSEC << JIFFIES_SHIFT, /* details above */
> 48 .shift = JIFFIES_SHIFT,
> 49 .max_cycles = 10,
> 50 };
> 51

------------------------------------------------------------------------

diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index e1856030fa66..8f0ad6e4183c 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -2573,6 +2573,7 @@ config TEST_FPU
config TEST_CLOCKSOURCE_WATCHDOG
tristate "Test clocksource watchdog in kernel space"
depends on CLOCKSOURCE_WATCHDOG
+ depends on HZ >= 100
help
Enable this option to create a kernel module that will trigger
a test of the clocksource watchdog. This module may be loaded

2021-07-05 07:49:13

by Chen, Rong A

[permalink] [raw]
Subject: Re: [kbuild-all] Re: kernel/time/clocksource-wdtest.c:47:22: warning: signed shift result (0x27BC86B00) requires 35 bits to represent, but 'long' only has 32 bits



On 7/5/21 1:43 AM, Paul E. McKenney wrote:
> On Sun, Jul 04, 2021 at 05:42:36AM +0800, kernel test robot wrote:
>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>> head: 303392fd5c160822bf778270b28ec5ea50cab2b4
>> commit: 1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff clocksource: Provide kernel module to test clocksource watchdog
>> date: 11 days ago
>> config: mips-randconfig-r015-20210702 (attached as .config)
>> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 9eb613b2de3163686b1a4bd1160f15ac56a4b083)
>> reproduce (this is a W=1 build):
>> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>> chmod +x ~/bin/make.cross
>> # install mips cross compiling tool for clang build
>> # apt-get install binutils-mips-linux-gnu
>> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff
>> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>> git fetch --no-tags linus master
>> git checkout 1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff
>> # save the attached .config to linux build tree
>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips
>>
>> If you fix the issue, kindly add following tag as appropriate
>> Reported-by: kernel test robot <[email protected]>
>>
>> All warnings (new ones prefixed by >>):
>>
>>>> kernel/time/clocksource-wdtest.c:47:22: warning: signed shift result (0x27BC86B00) requires 35 bits to represent, but 'long' only has 32 bits [-Wshift-overflow]
>> .mult = TICK_NSEC << JIFFIES_SHIFT, /* details above */
>> ~~~~~~~~~ ^ ~~~~~~~~~~~~~
>> 1 warning generated.
> You have CONFIG_HZ_24=y and this test module assumes HZ > 100, as noted
> just above the excerpt below:
>
> /* Assume HZ > 100. */
> #define JIFFIES_SHIFT 8
>
> So this is expected behavior.
>
> Would it help if I gave that comment some teeth, for example, as
> shown at the end of this email?

Hi Paul,

I have confirmed that the below change can avoid the warning.

Best Regards,
Rong Chen

>
> ------------------------------------------------------------------------
>
> diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
> index e1856030fa66..8f0ad6e4183c 100644
> --- a/lib/Kconfig.debug
> +++ b/lib/Kconfig.debug
> @@ -2573,6 +2573,7 @@ config TEST_FPU
> config TEST_CLOCKSOURCE_WATCHDOG
> tristate "Test clocksource watchdog in kernel space"
> depends on CLOCKSOURCE_WATCHDOG
> + depends on HZ >= 100
> help
> Enable this option to create a kernel module that will trigger
> a test of the clocksource watchdog. This module may be loaded
> _______________________________________________
> kbuild-all mailing list -- [email protected]
> To unsubscribe send an email to [email protected]

2021-07-05 15:24:33

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [kbuild-all] Re: kernel/time/clocksource-wdtest.c:47:22: warning: signed shift result (0x27BC86B00) requires 35 bits to represent, but 'long' only has 32 bits

On Mon, Jul 05, 2021 at 03:47:09PM +0800, Rong Chen wrote:
>
>
> On 7/5/21 1:43 AM, Paul E. McKenney wrote:
> > On Sun, Jul 04, 2021 at 05:42:36AM +0800, kernel test robot wrote:
> > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > > head: 303392fd5c160822bf778270b28ec5ea50cab2b4
> > > commit: 1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff clocksource: Provide kernel module to test clocksource watchdog
> > > date: 11 days ago
> > > config: mips-randconfig-r015-20210702 (attached as .config)
> > > compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 9eb613b2de3163686b1a4bd1160f15ac56a4b083)
> > > reproduce (this is a W=1 build):
> > > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > > chmod +x ~/bin/make.cross
> > > # install mips cross compiling tool for clang build
> > > # apt-get install binutils-mips-linux-gnu
> > > # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff
> > > git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> > > git fetch --no-tags linus master
> > > git checkout 1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff
> > > # save the attached .config to linux build tree
> > > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips
> > >
> > > If you fix the issue, kindly add following tag as appropriate
> > > Reported-by: kernel test robot <[email protected]>
> > >
> > > All warnings (new ones prefixed by >>):
> > >
> > > > > kernel/time/clocksource-wdtest.c:47:22: warning: signed shift result (0x27BC86B00) requires 35 bits to represent, but 'long' only has 32 bits [-Wshift-overflow]
> > > .mult = TICK_NSEC << JIFFIES_SHIFT, /* details above */
> > > ~~~~~~~~~ ^ ~~~~~~~~~~~~~
> > > 1 warning generated.
> > You have CONFIG_HZ_24=y and this test module assumes HZ > 100, as noted
> > just above the excerpt below:
> >
> > /* Assume HZ > 100. */
> > #define JIFFIES_SHIFT 8
> >
> > So this is expected behavior.
> >
> > Would it help if I gave that comment some teeth, for example, as
> > shown at the end of this email?
>
> Hi Paul,
>
> I have confirmed that the below change can avoid the warning.

Very good, and thank you! May I add your Tested-by?

Thanx, Paul

> Best Regards,
> Rong Chen
>
> >
> > ------------------------------------------------------------------------
> >
> > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
> > index e1856030fa66..8f0ad6e4183c 100644
> > --- a/lib/Kconfig.debug
> > +++ b/lib/Kconfig.debug
> > @@ -2573,6 +2573,7 @@ config TEST_FPU
> > config TEST_CLOCKSOURCE_WATCHDOG
> > tristate "Test clocksource watchdog in kernel space"
> > depends on CLOCKSOURCE_WATCHDOG
> > + depends on HZ >= 100
> > help
> > Enable this option to create a kernel module that will trigger
> > a test of the clocksource watchdog. This module may be loaded
> > _______________________________________________
> > kbuild-all mailing list -- [email protected]
> > To unsubscribe send an email to [email protected]
>

2021-07-06 00:12:27

by Chen, Rong A

[permalink] [raw]
Subject: Re: [kbuild-all] Re: kernel/time/clocksource-wdtest.c:47:22: warning: signed shift result (0x27BC86B00) requires 35 bits to represent, but 'long' only has 32 bits



On 7/5/21 11:21 PM, Paul E. McKenney wrote:
> On Mon, Jul 05, 2021 at 03:47:09PM +0800, Rong Chen wrote:
>>
>> On 7/5/21 1:43 AM, Paul E. McKenney wrote:
>>> On Sun, Jul 04, 2021 at 05:42:36AM +0800, kernel test robot wrote:
>>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>>>> head: 303392fd5c160822bf778270b28ec5ea50cab2b4
>>>> commit: 1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff clocksource: Provide kernel module to test clocksource watchdog
>>>> date: 11 days ago
>>>> config: mips-randconfig-r015-20210702 (attached as .config)
>>>> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 9eb613b2de3163686b1a4bd1160f15ac56a4b083)
>>>> reproduce (this is a W=1 build):
>>>> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>>>> chmod +x ~/bin/make.cross
>>>> # install mips cross compiling tool for clang build
>>>> # apt-get install binutils-mips-linux-gnu
>>>> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff
>>>> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>>>> git fetch --no-tags linus master
>>>> git checkout 1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff
>>>> # save the attached .config to linux build tree
>>>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips
>>>>
>>>> If you fix the issue, kindly add following tag as appropriate
>>>> Reported-by: kernel test robot <[email protected]>
>>>>
>>>> All warnings (new ones prefixed by >>):
>>>>
>>>>>> kernel/time/clocksource-wdtest.c:47:22: warning: signed shift result (0x27BC86B00) requires 35 bits to represent, but 'long' only has 32 bits [-Wshift-overflow]
>>>> .mult = TICK_NSEC << JIFFIES_SHIFT, /* details above */
>>>> ~~~~~~~~~ ^ ~~~~~~~~~~~~~
>>>> 1 warning generated.
>>> You have CONFIG_HZ_24=y and this test module assumes HZ > 100, as noted
>>> just above the excerpt below:
>>>
>>> /* Assume HZ > 100. */
>>> #define JIFFIES_SHIFT 8
>>>
>>> So this is expected behavior.
>>>
>>> Would it help if I gave that comment some teeth, for example, as
>>> shown at the end of this email?
>> Hi Paul,
>>
>> I have confirmed that the below change can avoid the warning.
> Very good, and thank you! May I add your Tested-by?

Yes, please.

Best Regards,
Rong Chen

>
> Thanx, Paul
>
>> Best Regards,
>> Rong Chen
>>
>>> ------------------------------------------------------------------------
>>>
>>> diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
>>> index e1856030fa66..8f0ad6e4183c 100644
>>> --- a/lib/Kconfig.debug
>>> +++ b/lib/Kconfig.debug
>>> @@ -2573,6 +2573,7 @@ config TEST_FPU
>>> config TEST_CLOCKSOURCE_WATCHDOG
>>> tristate "Test clocksource watchdog in kernel space"
>>> depends on CLOCKSOURCE_WATCHDOG
>>> + depends on HZ >= 100
>>> help
>>> Enable this option to create a kernel module that will trigger
>>> a test of the clocksource watchdog. This module may be loaded
>>> _______________________________________________
>>> kbuild-all mailing list -- [email protected]
>>> To unsubscribe send an email to [email protected]

2021-07-06 15:49:22

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [kbuild-all] Re: kernel/time/clocksource-wdtest.c:47:22: warning: signed shift result (0x27BC86B00) requires 35 bits to represent, but 'long' only has 32 bits

On Tue, Jul 06, 2021 at 08:11:07AM +0800, Rong Chen wrote:
>
>
> On 7/5/21 11:21 PM, Paul E. McKenney wrote:
> > On Mon, Jul 05, 2021 at 03:47:09PM +0800, Rong Chen wrote:
> > >
> > > On 7/5/21 1:43 AM, Paul E. McKenney wrote:
> > > > On Sun, Jul 04, 2021 at 05:42:36AM +0800, kernel test robot wrote:
> > > > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > > > > head: 303392fd5c160822bf778270b28ec5ea50cab2b4
> > > > > commit: 1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff clocksource: Provide kernel module to test clocksource watchdog
> > > > > date: 11 days ago
> > > > > config: mips-randconfig-r015-20210702 (attached as .config)
> > > > > compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 9eb613b2de3163686b1a4bd1160f15ac56a4b083)
> > > > > reproduce (this is a W=1 build):
> > > > > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > > > > chmod +x ~/bin/make.cross
> > > > > # install mips cross compiling tool for clang build
> > > > > # apt-get install binutils-mips-linux-gnu
> > > > > # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff
> > > > > git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> > > > > git fetch --no-tags linus master
> > > > > git checkout 1253b9b87e42ab6a3d5c2cb27af2bdd67d7e50ff
> > > > > # save the attached .config to linux build tree
> > > > > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips
> > > > >
> > > > > If you fix the issue, kindly add following tag as appropriate
> > > > > Reported-by: kernel test robot <[email protected]>
> > > > >
> > > > > All warnings (new ones prefixed by >>):
> > > > >
> > > > > > > kernel/time/clocksource-wdtest.c:47:22: warning: signed shift result (0x27BC86B00) requires 35 bits to represent, but 'long' only has 32 bits [-Wshift-overflow]
> > > > > .mult = TICK_NSEC << JIFFIES_SHIFT, /* details above */
> > > > > ~~~~~~~~~ ^ ~~~~~~~~~~~~~
> > > > > 1 warning generated.
> > > > You have CONFIG_HZ_24=y and this test module assumes HZ > 100, as noted
> > > > just above the excerpt below:
> > > >
> > > > /* Assume HZ > 100. */
> > > > #define JIFFIES_SHIFT 8
> > > >
> > > > So this is expected behavior.
> > > >
> > > > Would it help if I gave that comment some teeth, for example, as
> > > > shown at the end of this email?
> > > Hi Paul,
> > >
> > > I have confirmed that the below change can avoid the warning.
> > Very good, and thank you! May I add your Tested-by?
>
> Yes, please.

Applied, thank you!

Thanx, Paul

> Best Regards,
> Rong Chen
>
> >
> > Thanx, Paul
> >
> > > Best Regards,
> > > Rong Chen
> > >
> > > > ------------------------------------------------------------------------
> > > >
> > > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
> > > > index e1856030fa66..8f0ad6e4183c 100644
> > > > --- a/lib/Kconfig.debug
> > > > +++ b/lib/Kconfig.debug
> > > > @@ -2573,6 +2573,7 @@ config TEST_FPU
> > > > config TEST_CLOCKSOURCE_WATCHDOG
> > > > tristate "Test clocksource watchdog in kernel space"
> > > > depends on CLOCKSOURCE_WATCHDOG
> > > > + depends on HZ >= 100
> > > > help
> > > > Enable this option to create a kernel module that will trigger
> > > > a test of the clocksource watchdog. This module may be loaded
> > > > _______________________________________________
> > > > kbuild-all mailing list -- [email protected]
> > > > To unsubscribe send an email to [email protected]
>