linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] zsmalloc: use U suffix for negative literals being shifted
@ 2017-12-24  2:33 Nick Desaulniers
  2017-12-24  3:24 ` Matthew Wilcox
  2018-01-07 15:04 ` Minchan Kim
  0 siblings, 2 replies; 10+ messages in thread
From: Nick Desaulniers @ 2017-12-24  2:33 UTC (permalink / raw)
  Cc: Nick Desaulniers, Minchan Kim, Nitin Gupta, Sergey Senozhatsky,
	linux-mm, linux-kernel

Fixes warnings about shifting unsigned literals being undefined
behavior.

Signed-off-by: Nick Desaulniers <nick.desaulniers@gmail.com>
---
 mm/zsmalloc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
index 685049a..5d31458 100644
--- a/mm/zsmalloc.c
+++ b/mm/zsmalloc.c
@@ -1056,7 +1056,7 @@ static void init_zspage(struct size_class *class, struct zspage *zspage)
 			 * Reset OBJ_TAG_BITS bit to last link to tell
 			 * whether it's allocated object or not.
 			 */
-			link->next = -1 << OBJ_TAG_BITS;
+			link->next = -1U << OBJ_TAG_BITS;
 		}
 		kunmap_atomic(vaddr);
 		page = next_page;
-- 
2.7.4

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] zsmalloc: use U suffix for negative literals being shifted
  2017-12-24  2:33 [PATCH] zsmalloc: use U suffix for negative literals being shifted Nick Desaulniers
@ 2017-12-24  3:24 ` Matthew Wilcox
  2017-12-24  3:28   ` Nick Desaulniers
  2018-01-07 15:04 ` Minchan Kim
  1 sibling, 1 reply; 10+ messages in thread
From: Matthew Wilcox @ 2017-12-24  3:24 UTC (permalink / raw)
  To: Nick Desaulniers
  Cc: Minchan Kim, Nitin Gupta, Sergey Senozhatsky, linux-mm, linux-kernel

On Sat, Dec 23, 2017 at 09:33:40PM -0500, Nick Desaulniers wrote:
> Fixes warnings about shifting unsigned literals being undefined
> behavior.

Do you mean signed literals?

>  			 */
> -			link->next = -1 << OBJ_TAG_BITS;
> +			link->next = -1U << OBJ_TAG_BITS;
>  		}

I don't understand what -1U means.  Seems like a contradiction in terms,
a negative unsigned number.  Is this supposed to be ~0U?

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] zsmalloc: use U suffix for negative literals being shifted
  2017-12-24  3:24 ` Matthew Wilcox
@ 2017-12-24  3:28   ` Nick Desaulniers
  2018-01-06 20:40     ` Nick Desaulniers
  0 siblings, 1 reply; 10+ messages in thread
From: Nick Desaulniers @ 2017-12-24  3:28 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: Minchan Kim, Nitin Gupta, Sergey Senozhatsky, linux-mm,
	Linux Kernel Mailing List

On Sat, Dec 23, 2017 at 10:24 PM, Matthew Wilcox <willy@infradead.org> wrote:
> On Sat, Dec 23, 2017 at 09:33:40PM -0500, Nick Desaulniers wrote:
>> Fixes warnings about shifting unsigned literals being undefined
>> behavior.
>
> Do you mean signed literals?


A sorry, s/unsigned/negative signed/g.  The warning is:

mm/zsmalloc.c:1059:20: warning: shifting a negative signed value is undefined
      [-Wshift-negative-value]
                        link->next = -1 << OBJ_TAG_BITS;
                                     ~~ ^

>
>>                        */
>> -                     link->next = -1 << OBJ_TAG_BITS;
>> +                     link->next = -1U << OBJ_TAG_BITS;
>>               }
>
> I don't understand what -1U means.  Seems like a contradiction in terms,
> a negative unsigned number.  Is this supposed to be ~0U?

$ ag \\-1U[^L]

The code base is full of that literal.  I think of it as:

(unsigned) -1

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] zsmalloc: use U suffix for negative literals being shifted
  2017-12-24  3:28   ` Nick Desaulniers
@ 2018-01-06 20:40     ` Nick Desaulniers
  0 siblings, 0 replies; 10+ messages in thread
From: Nick Desaulniers @ 2018-01-06 20:40 UTC (permalink / raw)
  To: Matthew Wilcox, Minchan Kim, Nitin Gupta
  Cc: Sergey Senozhatsky, linux-mm, Linux Kernel Mailing List

Hello,
What are the next steps for this patch?

Note: the MAINTAINERS file does not contain a T: (tree) entry for
ZSMALLOC, so I can't check to see if this has already been merged or
not.  Unless you work out of the mm tree?

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] zsmalloc: use U suffix for negative literals being shifted
  2017-12-24  2:33 [PATCH] zsmalloc: use U suffix for negative literals being shifted Nick Desaulniers
  2017-12-24  3:24 ` Matthew Wilcox
@ 2018-01-07 15:04 ` Minchan Kim
  2018-01-07 23:02   ` Andy Shevchenko
  1 sibling, 1 reply; 10+ messages in thread
From: Minchan Kim @ 2018-01-07 15:04 UTC (permalink / raw)
  To: Nick Desaulniers; +Cc: Nitin Gupta, Sergey Senozhatsky, linux-mm, linux-kernel

Hello,

Sorry for the delay. I have missed this until now. ;-(

On Sun, Dec 24, 2017 at 11:33 AM, Nick Desaulniers
<nick.desaulniers@gmail.com> wrote:
> Fixes warnings about shifting unsigned literals being undefined
> behavior.
>
> Signed-off-by: Nick Desaulniers <nick.desaulniers@gmail.com>
> ---
>  mm/zsmalloc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
> index 685049a..5d31458 100644
> --- a/mm/zsmalloc.c
> +++ b/mm/zsmalloc.c
> @@ -1056,7 +1056,7 @@ static void init_zspage(struct size_class *class, struct zspage *zspage)
>                          * Reset OBJ_TAG_BITS bit to last link to tell
>                          * whether it's allocated object or not.
>                          */
> -                       link->next = -1 << OBJ_TAG_BITS;
> +                       link->next = -1U << OBJ_TAG_BITS;

-1UL?

Please, resend it with including Andrew Morton
<akpm@linux-foundation.org> who merges zsmalloc patch into his tree.

Thanks.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] zsmalloc: use U suffix for negative literals being shifted
  2018-01-07 15:04 ` Minchan Kim
@ 2018-01-07 23:02   ` Andy Shevchenko
  2018-01-09  4:35     ` Nick Desaulniers
  0 siblings, 1 reply; 10+ messages in thread
From: Andy Shevchenko @ 2018-01-07 23:02 UTC (permalink / raw)
  To: Minchan Kim
  Cc: Nick Desaulniers, Nitin Gupta, Sergey Senozhatsky, linux-mm,
	linux-kernel

On Sun, Jan 7, 2018 at 5:04 PM, Minchan Kim <minchan@kernel.org> wrote:

>> -                       link->next = -1 << OBJ_TAG_BITS;
>> +                       link->next = -1U << OBJ_TAG_BITS;
>
> -1UL?

Oh, boy, shouldn't be rather GENMASK() / GENMASK_ULL() in a way how
it's done, for example, here:
https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git/commit/?h=for-next&id=d2b3c353595a855794f8b9df5b5bdbe8deb0c413

-- 
With Best Regards,
Andy Shevchenko

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] zsmalloc: use U suffix for negative literals being shifted
  2018-01-07 23:02   ` Andy Shevchenko
@ 2018-01-09  4:35     ` Nick Desaulniers
  2018-01-10  5:53       ` Minchan Kim
  0 siblings, 1 reply; 10+ messages in thread
From: Nick Desaulniers @ 2018-01-09  4:35 UTC (permalink / raw)
  To: Andy Shevchenko, Minchan Kim
  Cc: Nitin Gupta, Sergey Senozhatsky, linux-mm, linux-kernel

On Sun, Jan 7, 2018 at 7:04 AM, Minchan Kim <minchan@kernel.org> wrote:
> Sorry for the delay. I have missed this until now. ;-(

No worries, figured patches would need a post holiday bump for review.

>
> On Sun, Dec 24, 2017 at 11:33 AM, Nick Desaulniers
> <nick.desaulniers@gmail.com> wrote:
>> -                       link->next = -1 << OBJ_TAG_BITS;
>> +                       link->next = -1U << OBJ_TAG_BITS;
>
> -1UL?

Oops, good catch.

> Please, resend it with including Andrew Morton
> <akpm@linux-foundation.org> who merges zsmalloc patch into his tree.

Will do.

On Sun, Jan 7, 2018 at 3:02 PM, Andy Shevchenko
<andy.shevchenko@gmail.com> wrote:
> Oh, boy, shouldn't be rather GENMASK() / GENMASK_ULL() in a way how

Thanks for the suggestion. `GENMASK(BITS_PER_LONG - 1, OBJ_TAG_BITS);`
is equivalent.  Whether that is more readable, I'll wait for Minchan
to decide.  If that's preferred, I'll make sure to credit you with the
Suggested-By tag in the commit message.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] zsmalloc: use U suffix for negative literals being shifted
  2018-01-09  4:35     ` Nick Desaulniers
@ 2018-01-10  5:53       ` Minchan Kim
  2018-01-11  3:41         ` [PATCH v2] " Nick Desaulniers
  0 siblings, 1 reply; 10+ messages in thread
From: Minchan Kim @ 2018-01-10  5:53 UTC (permalink / raw)
  To: Nick Desaulniers
  Cc: Andy Shevchenko, Nitin Gupta, Sergey Senozhatsky, linux-mm, linux-kernel

Hi Nick,

On Mon, Jan 08, 2018 at 08:35:19PM -0800, Nick Desaulniers wrote:
> On Sun, Jan 7, 2018 at 7:04 AM, Minchan Kim <minchan@kernel.org> wrote:
> > Sorry for the delay. I have missed this until now. ;-(
> 
> No worries, figured patches would need a post holiday bump for review.
> 
> >
> > On Sun, Dec 24, 2017 at 11:33 AM, Nick Desaulniers
> > <nick.desaulniers@gmail.com> wrote:
> >> -                       link->next = -1 << OBJ_TAG_BITS;
> >> +                       link->next = -1U << OBJ_TAG_BITS;
> >
> > -1UL?
> 
> Oops, good catch.
> 
> > Please, resend it with including Andrew Morton
> > <akpm@linux-foundation.org> who merges zsmalloc patch into his tree.
> 
> Will do.
> 
> On Sun, Jan 7, 2018 at 3:02 PM, Andy Shevchenko
> <andy.shevchenko@gmail.com> wrote:
> > Oh, boy, shouldn't be rather GENMASK() / GENMASK_ULL() in a way how
> 
> Thanks for the suggestion. `GENMASK(BITS_PER_LONG - 1, OBJ_TAG_BITS);`
> is equivalent.  Whether that is more readable, I'll wait for Minchan
> to decide.  If that's preferred, I'll make sure to credit you with the
> Suggested-By tag in the commit message.

I don't see any benefit with GENMASK in our usecase.
If it's not a good justfication, I'd like to use just -1UL which
would be more readable without effort to understand new API.

Thanks.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2] zsmalloc: use U suffix for negative literals being shifted
  2018-01-10  5:53       ` Minchan Kim
@ 2018-01-11  3:41         ` Nick Desaulniers
  2018-01-11  7:06           ` Sergey Senozhatsky
  0 siblings, 1 reply; 10+ messages in thread
From: Nick Desaulniers @ 2018-01-11  3:41 UTC (permalink / raw)
  To: akpm
  Cc: Andy Shevchenko, Matthew Wilcox, Nick Desaulniers, Minchan Kim,
	Nitin Gupta, Sergey Senozhatsky, linux-mm, linux-kernel

Fixes warnings about shifting unsigned literals being undefined
behavior.

Suggested-by: Minchan Kim <minchan@kernel.org>
Signed-off-by: Nick Desaulniers <nick.desaulniers@gmail.com>
---
Changes since v1:
* Use L suffix in addition to U, as suggested (link->next is unsigned long).

 mm/zsmalloc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
index 683c065..b9040bd 100644
--- a/mm/zsmalloc.c
+++ b/mm/zsmalloc.c
@@ -1057,7 +1057,7 @@ static void init_zspage(struct size_class *class, struct zspage *zspage)
 			 * Reset OBJ_TAG_BITS bit to last link to tell
 			 * whether it's allocated object or not.
 			 */
-			link->next = -1 << OBJ_TAG_BITS;
+			link->next = -1UL << OBJ_TAG_BITS;
 		}
 		kunmap_atomic(vaddr);
 		page = next_page;
-- 
2.7.4

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] zsmalloc: use U suffix for negative literals being shifted
  2018-01-11  3:41         ` [PATCH v2] " Nick Desaulniers
@ 2018-01-11  7:06           ` Sergey Senozhatsky
  0 siblings, 0 replies; 10+ messages in thread
From: Sergey Senozhatsky @ 2018-01-11  7:06 UTC (permalink / raw)
  To: Nick Desaulniers
  Cc: akpm, Andy Shevchenko, Matthew Wilcox, Minchan Kim, Nitin Gupta,
	Sergey Senozhatsky, linux-mm, linux-kernel

On (01/10/18 19:41), Nick Desaulniers wrote:
> Fixes warnings about shifting unsigned literals being undefined
> behavior.
> 
> Suggested-by: Minchan Kim <minchan@kernel.org>
> Signed-off-by: Nick Desaulniers <nick.desaulniers@gmail.com>

looks good to me.

Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>

	-ss

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-01-11  7:06 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-24  2:33 [PATCH] zsmalloc: use U suffix for negative literals being shifted Nick Desaulniers
2017-12-24  3:24 ` Matthew Wilcox
2017-12-24  3:28   ` Nick Desaulniers
2018-01-06 20:40     ` Nick Desaulniers
2018-01-07 15:04 ` Minchan Kim
2018-01-07 23:02   ` Andy Shevchenko
2018-01-09  4:35     ` Nick Desaulniers
2018-01-10  5:53       ` Minchan Kim
2018-01-11  3:41         ` [PATCH v2] " Nick Desaulniers
2018-01-11  7:06           ` Sergey Senozhatsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).