Re: [Outreachy kernel] [PATCH v2 2/7] staging: most: Using macro DIV_ROUND_UP

2017-02-22 Thread Julia Lawall


On Wed, 22 Feb 2017, SIMRAN SINGHAL wrote:

>
>
> On Wednesday, February 22, 2017 at 2:57:17 PM UTC+5:30, Julia Lawall wrote:
>   > @@ -117,7 +118,7 @@ static int alloc_dbr(u16 size)
>   >  return DBR_SIZE; /* out of memory */
>   >
>   >  for (i = 0; i < DBR_MAP_SIZE; i++) {
>   > -u32 const blocks = (size + DBR_BLOCK_SIZE -
>   1) / DBR_BLOCK_SIZE;
>   > +u32 const blocks = DIV_ROUND_UP(size,
>   DBR_BLOCK_SIZE);
>   >  u32 mask = ~((~(u32)0) << blocks);
>
>   Totally unrelated to DIV_ROUND_UP, would this code be a
>   candidate for
>   GENMASK?
>
>  
>   Not sure, what you are trying to say.

There was a discussion on the list recently about GENMASK, which allows to
create a mask containing a sequence of 1s, like .  It looks
like that is what is being done here, because ~0 is  and then it
ie being shifted left and all the bits inverted.  But Joe had another
suggestion.  One could double check that his suggestion gives the right
result.

julia

>
>  
>
>   julia
>
>   >
>   >  do {
>   > @@ -137,7 +138,7 @@ static int alloc_dbr(u16 size)
>   >  static void free_dbr(int offs, int size)
>   >  {
>   >  int block_idx = offs / DBR_BLOCK_SIZE;
>   > -u32 const blocks = (size + DBR_BLOCK_SIZE - 1) /
>   DBR_BLOCK_SIZE;
>   > +u32 const blocks = DIV_ROUND_UP(size,
>   DBR_BLOCK_SIZE);
>   >  u32 mask = ~((~(u32)0) << blocks);
>   >
>   >  mask <<= block_idx % 32;
>   > --
>   > 2.7.4
>   >
>   > --
>   > You received this message because you are subscribed to the
>   Google Groups "outreachy-kernel" group.
>   > To unsubscribe from this group and stop receiving emails from
>   it, send an email to outreachy-kern...@googlegroups.com.
>   > To post to this group, send email to
>   outreach...@googlegroups.com.
>   > To view this discussion on the web 
> visithttps://groups.google.com/d/msgid/outreachy-kernel/20170222091015.GA11058%4
>   0singhal-Inspiron-5558.
>   > For more options, visit https://groups.google.com/d/optout.
>   >
>
> --
> You received this message because you are subscribed to the Google Groups
> "outreachy-kernel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to outreachy-kernel+unsubscr...@googlegroups.com.
> To post to this group, send email to outreachy-ker...@googlegroups.com.
> To view this discussion on the web 
> visithttps://groups.google.com/d/msgid/outreachy-kernel/d1716b00-a408-4f3c-8c17-
> 04a70acca4dd%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
>

Re: [Outreachy kernel] [PATCH v2 2/7] staging: most: Using macro DIV_ROUND_UP

2017-02-22 Thread Julia Lawall


On Wed, 22 Feb 2017, SIMRAN SINGHAL wrote:

>
>
> On Wednesday, February 22, 2017 at 2:57:17 PM UTC+5:30, Julia Lawall wrote:
>   > @@ -117,7 +118,7 @@ static int alloc_dbr(u16 size)
>   >  return DBR_SIZE; /* out of memory */
>   >
>   >  for (i = 0; i < DBR_MAP_SIZE; i++) {
>   > -u32 const blocks = (size + DBR_BLOCK_SIZE -
>   1) / DBR_BLOCK_SIZE;
>   > +u32 const blocks = DIV_ROUND_UP(size,
>   DBR_BLOCK_SIZE);
>   >  u32 mask = ~((~(u32)0) << blocks);
>
>   Totally unrelated to DIV_ROUND_UP, would this code be a
>   candidate for
>   GENMASK?
>
>  
>   Not sure, what you are trying to say.

There was a discussion on the list recently about GENMASK, which allows to
create a mask containing a sequence of 1s, like .  It looks
like that is what is being done here, because ~0 is  and then it
ie being shifted left and all the bits inverted.  But Joe had another
suggestion.  One could double check that his suggestion gives the right
result.

julia

>
>  
>
>   julia
>
>   >
>   >  do {
>   > @@ -137,7 +138,7 @@ static int alloc_dbr(u16 size)
>   >  static void free_dbr(int offs, int size)
>   >  {
>   >  int block_idx = offs / DBR_BLOCK_SIZE;
>   > -u32 const blocks = (size + DBR_BLOCK_SIZE - 1) /
>   DBR_BLOCK_SIZE;
>   > +u32 const blocks = DIV_ROUND_UP(size,
>   DBR_BLOCK_SIZE);
>   >  u32 mask = ~((~(u32)0) << blocks);
>   >
>   >  mask <<= block_idx % 32;
>   > --
>   > 2.7.4
>   >
>   > --
>   > You received this message because you are subscribed to the
>   Google Groups "outreachy-kernel" group.
>   > To unsubscribe from this group and stop receiving emails from
>   it, send an email to outreachy-kern...@googlegroups.com.
>   > To post to this group, send email to
>   outreach...@googlegroups.com.
>   > To view this discussion on the web 
> visithttps://groups.google.com/d/msgid/outreachy-kernel/20170222091015.GA11058%4
>   0singhal-Inspiron-5558.
>   > For more options, visit https://groups.google.com/d/optout.
>   >
>
> --
> You received this message because you are subscribed to the Google Groups
> "outreachy-kernel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to outreachy-kernel+unsubscr...@googlegroups.com.
> To post to this group, send email to outreachy-ker...@googlegroups.com.
> To view this discussion on the web 
> visithttps://groups.google.com/d/msgid/outreachy-kernel/d1716b00-a408-4f3c-8c17-
> 04a70acca4dd%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
>

Re: [Outreachy kernel] [PATCH v2 2/7] staging: most: Using macro DIV_ROUND_UP

2017-02-22 Thread Joe Perches
On Wed, 2017-02-22 at 10:27 +0100, Julia Lawall wrote:
> > @@ -117,7 +118,7 @@ static int alloc_dbr(u16 size)
> > return DBR_SIZE; /* out of memory */
> > 
> > for (i = 0; i < DBR_MAP_SIZE; i++) {
> > -   u32 const blocks = (size + DBR_BLOCK_SIZE - 1) / DBR_BLOCK_SIZE;
> > +   u32 const blocks = DIV_ROUND_UP(size, DBR_BLOCK_SIZE);
> > u32 mask = ~((~(u32)0) << blocks);
> 
> Totally unrelated to DIV_ROUND_UP, would this code be a candidate for
> GENMASK?

Maybe "(1 << blocks) - 1" would be more intelligible.



Re: [Outreachy kernel] [PATCH v2 2/7] staging: most: Using macro DIV_ROUND_UP

2017-02-22 Thread Joe Perches
On Wed, 2017-02-22 at 10:27 +0100, Julia Lawall wrote:
> > @@ -117,7 +118,7 @@ static int alloc_dbr(u16 size)
> > return DBR_SIZE; /* out of memory */
> > 
> > for (i = 0; i < DBR_MAP_SIZE; i++) {
> > -   u32 const blocks = (size + DBR_BLOCK_SIZE - 1) / DBR_BLOCK_SIZE;
> > +   u32 const blocks = DIV_ROUND_UP(size, DBR_BLOCK_SIZE);
> > u32 mask = ~((~(u32)0) << blocks);
> 
> Totally unrelated to DIV_ROUND_UP, would this code be a candidate for
> GENMASK?

Maybe "(1 << blocks) - 1" would be more intelligible.



Re: [Outreachy kernel] [PATCH v2 2/7] staging: most: Using macro DIV_ROUND_UP

2017-02-22 Thread Julia Lawall
> @@ -117,7 +118,7 @@ static int alloc_dbr(u16 size)
>   return DBR_SIZE; /* out of memory */
>
>   for (i = 0; i < DBR_MAP_SIZE; i++) {
> - u32 const blocks = (size + DBR_BLOCK_SIZE - 1) / DBR_BLOCK_SIZE;
> + u32 const blocks = DIV_ROUND_UP(size, DBR_BLOCK_SIZE);
>   u32 mask = ~((~(u32)0) << blocks);

Totally unrelated to DIV_ROUND_UP, would this code be a candidate for
GENMASK?

julia

>
>   do {
> @@ -137,7 +138,7 @@ static int alloc_dbr(u16 size)
>  static void free_dbr(int offs, int size)
>  {
>   int block_idx = offs / DBR_BLOCK_SIZE;
> - u32 const blocks = (size + DBR_BLOCK_SIZE - 1) / DBR_BLOCK_SIZE;
> + u32 const blocks = DIV_ROUND_UP(size, DBR_BLOCK_SIZE);
>   u32 mask = ~((~(u32)0) << blocks);
>
>   mask <<= block_idx % 32;
> --
> 2.7.4
>
> --
> You received this message because you are subscribed to the Google Groups 
> "outreachy-kernel" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to outreachy-kernel+unsubscr...@googlegroups.com.
> To post to this group, send email to outreachy-ker...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/outreachy-kernel/20170222091015.GA11058%40singhal-Inspiron-5558.
> For more options, visit https://groups.google.com/d/optout.
>


Re: [Outreachy kernel] [PATCH v2 2/7] staging: most: Using macro DIV_ROUND_UP

2017-02-22 Thread Julia Lawall
> @@ -117,7 +118,7 @@ static int alloc_dbr(u16 size)
>   return DBR_SIZE; /* out of memory */
>
>   for (i = 0; i < DBR_MAP_SIZE; i++) {
> - u32 const blocks = (size + DBR_BLOCK_SIZE - 1) / DBR_BLOCK_SIZE;
> + u32 const blocks = DIV_ROUND_UP(size, DBR_BLOCK_SIZE);
>   u32 mask = ~((~(u32)0) << blocks);

Totally unrelated to DIV_ROUND_UP, would this code be a candidate for
GENMASK?

julia

>
>   do {
> @@ -137,7 +138,7 @@ static int alloc_dbr(u16 size)
>  static void free_dbr(int offs, int size)
>  {
>   int block_idx = offs / DBR_BLOCK_SIZE;
> - u32 const blocks = (size + DBR_BLOCK_SIZE - 1) / DBR_BLOCK_SIZE;
> + u32 const blocks = DIV_ROUND_UP(size, DBR_BLOCK_SIZE);
>   u32 mask = ~((~(u32)0) << blocks);
>
>   mask <<= block_idx % 32;
> --
> 2.7.4
>
> --
> You received this message because you are subscribed to the Google Groups 
> "outreachy-kernel" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to outreachy-kernel+unsubscr...@googlegroups.com.
> To post to this group, send email to outreachy-ker...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/outreachy-kernel/20170222091015.GA11058%40singhal-Inspiron-5558.
> For more options, visit https://groups.google.com/d/optout.
>