Re: [Outreachy kernel] [PATCH v2 2/7] staging: most: Using macro DIV_ROUND_UP
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
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
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
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
> @@ -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
> @@ -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. >