Re: [PATCH 1/1] block: move the PAGE_SECTORS definition into <linux/blkdev.h>

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

 




On 2020/11/20 9:27, John Dorminy wrote:
> Greetings;
> 
> There are a lot of uses of PAGE_SIZE/SECTOR_SIZE scattered around, and
> it seems like a medium improvement to be able to refer to it as
> PAGE_SECTORS everywhere instead of just inside dm, bcache, and
> null_blk. Did this change progress forward somewhere?

Actually, I'm trying to make further replacements after this patch is applied.
But there was no response except Coly Li.

> 
> Thanks!
> 
> John Dorminy
> 
> 
> On Mon, Sep 7, 2020 at 3:40 AM Leizhen (ThunderTown)
> <thunder.leizhen@xxxxxxxxxx> wrote:
>>
>> Hi, Jens Axboe, Alasdair Kergon, Mike Snitzer:
>>   What's your opinion?
>>
>>
>> On 2020/8/21 15:05, Coly Li wrote:
>>> On 2020/8/21 14:48, Leizhen (ThunderTown) wrote:
>>>>
>>>>
>>>> On 8/21/2020 12:11 PM, Coly Li wrote:
>>>>> On 2020/8/21 10:03, Zhen Lei wrote:
>>>>>> There are too many PAGE_SECTORS definitions, and all of them are the
>>>>>> same. It looks a bit of a mess. So why not move it into <linux/blkdev.h>,
>>>>>> to achieve a basic and unique definition.
>>>>>>
>>>>>> Signed-off-by: Zhen Lei <thunder.leizhen@xxxxxxxxxx>
>>>>>
>>>>>
>>>>> A lazy question about page size > 4KB: currently in bcache code the
>>>>> sector size is assumed to be 512 sectors, if kernel page > 4KB, it is
>>>>> possible that PAGE_SECTORS in bcache will be a number > 8 ?
>>>>
>>>> Sorry, I don't fully understand your question. I known that the sector size
>>>> can be 512 or 4K, and the PAGE_SIZE can be 4K or 64K. So even if sector size
>>>> is 4K, isn't it greater than 8 for 64K pages?
>>>>
>>>> I'm not sure if the question you're asking is the one Matthew Wilcox has
>>>> answered before:
>>>> https://www.spinics.net/lists/raid/msg64345.html
>>>
>>> Thank you for the above information. Currently bcache code assumes
>>> sector size is always 512 bytes, you may see how many "<< 9" or ">> 9"
>>> are used. Therefore I doubt whether current code may stably work on e.g.
>>> 4Kn SSDs (this is only doubt because I don't have such SSD).
>>>
>>> Anyway your patch is fine to me. This change to bcache doesn't make
>>> thins worse or better, maybe it can be helpful to trigger my above
>>> suspicious early if people do have this kind of problem on 4Kn sector SSDs.
>>>
>>> For the bcache part of this patch, you may add,
>>> Acked-by: Coly Li <colyli@xxxxxxx>
>>>
>>> Thanks.
>>>
>>> Coly Li
>>>
>>>>>> ---
>>>>>>  drivers/block/brd.c           | 1 -
>>>>>>  drivers/block/null_blk_main.c | 1 -
>>>>>>  drivers/md/bcache/util.h      | 2 --
>>>>>>  include/linux/blkdev.h        | 5 +++--
>>>>>>  include/linux/device-mapper.h | 1 -
>>>>>>  5 files changed, 3 insertions(+), 7 deletions(-)
>>>>>>
>>>>>
>>>>> [snipped]
>>>>>
>>>>>> diff --git a/drivers/md/bcache/util.h b/drivers/md/bcache/util.h
>>>>>> index c029f7443190805..55196e0f37c32c6 100644
>>>>>> --- a/drivers/md/bcache/util.h
>>>>>> +++ b/drivers/md/bcache/util.h
>>>>>> @@ -15,8 +15,6 @@
>>>>>>
>>>>>>  #include "closure.h"
>>>>>>
>>>>>> -#define PAGE_SECTORS              (PAGE_SIZE / 512)
>>>>>> -
>>>>>>  struct closure;
>>>>>>
>>>>>>  #ifdef CONFIG_BCACHE_DEBUG
>>>>>> diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
>>>>>> index bb5636cc17b91a7..b068dfc5f2ef0ab 100644
>>>>>> --- a/include/linux/blkdev.h
>>>>>> +++ b/include/linux/blkdev.h
>>>>>> @@ -949,11 +949,12 @@ static inline struct request_queue *bdev_get_queue(struct block_device *bdev)
>>>>>>   * multiple of 512 bytes. Hence these two constants.
>>>>>>   */
>>>>>>  #ifndef SECTOR_SHIFT
>>>>>> -#define SECTOR_SHIFT 9
>>>>>> +#define SECTOR_SHIFT              9
>>>>>>  #endif
>>>>>>  #ifndef SECTOR_SIZE
>>>>>> -#define SECTOR_SIZE (1 << SECTOR_SHIFT)
>>>>>> +#define SECTOR_SIZE               (1 << SECTOR_SHIFT)
>>>>>>  #endif
>>>>>> +#define PAGE_SECTORS              (PAGE_SIZE / SECTOR_SIZE)
>>>>>>
>>>>>>  /*
>>>>>>   * blk_rq_pos()                   : the current sector
>>>>> [snipped]
>>>>>
>>>>>
>>>>
>>>
>>>
>>> .
>>>
>>
> 
> 
> .
> 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux ARM Kernel]     [Linux Filesystem Development]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux