Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1650663 > unrolled thread

Re: Change PAGE_SIZE from minimum 4k to 12k

Started byPavel Machek <pavel@ucw.cz>
First post2017-05-25 19:10 +0200
Last post2017-05-26 15:20 +0200
Articles 5 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: Change PAGE_SIZE from minimum 4k to 12k Pavel Machek <pavel@ucw.cz> - 2017-05-25 19:10 +0200
    Re: Change PAGE_SIZE from minimum 4k to 12k Alan Cox <gnomes@lxorguk.ukuu.org.uk> - 2017-05-25 22:10 +0200
      Re: Change PAGE_SIZE from minimum 4k to 12k Kevin McKinney <klmckinney1@gmail.com> - 2017-05-25 23:10 +0200
        Re: Change PAGE_SIZE from minimum 4k to 12k Pavel Machek <pavel@ucw.cz> - 2017-05-26 00:00 +0200
          Re: Change PAGE_SIZE from minimum 4k to 12k Kevin McKinney <klmckinney1@gmail.com> - 2017-05-26 15:20 +0200

#1650663 — Re: Change PAGE_SIZE from minimum 4k to 12k

FromPavel Machek <pavel@ucw.cz>
Date2017-05-25 19:10 +0200
SubjectRe: Change PAGE_SIZE from minimum 4k to 12k
Message-ID<tL4qR-2vP-15@gated-at.bofh.it>

[Multipart message — attachments visible in raw view] — view raw

On Tue 2017-05-16 11:27:08, Kevin McKinney wrote:
> Hi Everyone,
> 
> Would it be possible to have a custom block device driver read/write
> in increments of 12k instead of reading/writing data in 4k increments?
> In other words, I would like to change the default page size on a
> x86_64 platform (4.4.0 kernel) from 4k to 12k as the minimum page
> size?  I understand I may have negative performance due to
> fragmentation. Any help would be appreciated.
> 
> If this is the wrong mailing list, please let me know the right one to use.

I won't say "no" but ammount of work neccessary is likely measured in
man-years. Plus, hardware page size _is_ 4KB.

									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[toc] | [next] | [standalone]


#1650790

FromAlan Cox <gnomes@lxorguk.ukuu.org.uk>
Date2017-05-25 22:10 +0200
Message-ID<tL7f4-4jo-13@gated-at.bofh.it>
In reply to#1650663
On Thu, 25 May 2017 19:05:26 +0200
Pavel Machek <pavel@ucw.cz> wrote:

> On Tue 2017-05-16 11:27:08, Kevin McKinney wrote:
> > Hi Everyone,
> > 
> > Would it be possible to have a custom block device driver read/write
> > in increments of 12k instead of reading/writing data in 4k increments?
> > In other words, I would like to change the default page size on a
> > x86_64 platform (4.4.0 kernel) from 4k to 12k as the minimum page
> > size?  I understand I may have negative performance due to
> > fragmentation. Any help would be appreciated.
> > 
> > If this is the wrong mailing list, please let me know the right one to use.  
> 
> I won't say "no" but ammount of work neccessary is likely measured in
> man-years. Plus, hardware page size _is_ 4KB.

Or a few other much larger sizes. Not that it actually matters. You can
implement a larger software page size for a platform but it would still
neeed to be a power of two, and you'd have trouble running some existing
binaries for x86.

What problem are you *actually* trying to solve ?

Alan

[toc] | [prev] | [next] | [standalone]


#1650821

FromKevin McKinney <klmckinney1@gmail.com>
Date2017-05-25 23:10 +0200
Message-ID<tL8b8-4Xy-7@gated-at.bofh.it>
In reply to#1650790
On Thu, May 25, 2017 at 4:08 PM, Alan Cox <gnomes@lxorguk.ukuu.org.uk> wrote:
> On Thu, 25 May 2017 19:05:26 +0200
> Pavel Machek <pavel@ucw.cz> wrote:
>
>> On Tue 2017-05-16 11:27:08, Kevin McKinney wrote:
>> > Hi Everyone,
>> >
>> > Would it be possible to have a custom block device driver read/write
>> > in increments of 12k instead of reading/writing data in 4k increments?
>> > In other words, I would like to change the default page size on a
>> > x86_64 platform (4.4.0 kernel) from 4k to 12k as the minimum page
>> > size?  I understand I may have negative performance due to
>> > fragmentation. Any help would be appreciated.
>> >
>> > If this is the wrong mailing list, please let me know the right one to use.
>>
>> I won't say "no" but ammount of work neccessary is likely measured in
>> man-years. Plus, hardware page size _is_ 4KB.
>
> Or a few other much larger sizes. Not that it actually matters. You can
> implement a larger software page size for a platform but it would still
> neeed to be a power of two, and you'd have trouble running some existing
> binaries for x86.
>
> What problem are you *actually* trying to solve ?

Thanks for responding!  I work for a company that created custom
hardware with 4 banks of drives. Each bank is 12 terabytes; and each
bank is controlled by a separate RAID controller.  We created a custom
block device driver that is responsible for moving data to each bank.
The RAID controller will then stripe the data across the appropriate
disks for the specified bank.  The problem we are having is by moving
in increments of 4k, we are unable to utilize all 48 terabytes; we are
only able to utilize 32 terabytes. If we could move in increments of
12K that would allow us to use the full 12 terabytes for each bank.

Kevin

>
> Alan

[toc] | [prev] | [next] | [standalone]


#1650840

FromPavel Machek <pavel@ucw.cz>
Date2017-05-26 00:00 +0200
Message-ID<tL8Xv-5iU-3@gated-at.bofh.it>
In reply to#1650821

[Multipart message — attachments visible in raw view] — view raw

Hi!

> >> > Would it be possible to have a custom block device driver read/write
> >> > in increments of 12k instead of reading/writing data in 4k increments?
> >> > In other words, I would like to change the default page size on a
> >> > x86_64 platform (4.4.0 kernel) from 4k to 12k as the minimum page
> >> > size?  I understand I may have negative performance due to
> >> > fragmentation. Any help would be appreciated.
> >> >
> >> > If this is the wrong mailing list, please let me know the right one to use.
> >>
> >> I won't say "no" but ammount of work neccessary is likely measured in
> >> man-years. Plus, hardware page size _is_ 4KB.
> >
> > Or a few other much larger sizes. Not that it actually matters. You can
> > implement a larger software page size for a platform but it would still
> > neeed to be a power of two, and you'd have trouble running some existing
> > binaries for x86.
> >
> > What problem are you *actually* trying to solve ?
> 
> Thanks for responding!  I work for a company that created custom
> hardware with 4 banks of drives. Each bank is 12 terabytes; and each
> bank is controlled by a separate RAID controller.  We created a custom
> block device driver that is responsible for moving data to each bank.
> The RAID controller will then stripe the data across the appropriate
> disks for the specified bank.  The problem we are having is by moving
> in increments of 4k, we are unable to utilize all 48 terabytes; we are
> only able to utilize 32 terabytes. If we could move in increments of
> 12K that would allow us to use the full 12 terabytes for each bank.

12TB is not that big.. are we talking spinning rust or something
special?

I mean, what does it have to do with page size? 48TB device, that's 5
SATA drives... that's not even that big.

									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[toc] | [prev] | [next] | [standalone]


#1651384

FromKevin McKinney <klmckinney1@gmail.com>
Date2017-05-26 15:20 +0200
Message-ID<tLnjP-6mu-5@gated-at.bofh.it>
In reply to#1650840
On Thu, May 25, 2017 at 5:55 PM, Pavel Machek <pavel@ucw.cz> wrote:
> Hi!
>
>> >> > Would it be possible to have a custom block device driver read/write
>> >> > in increments of 12k instead of reading/writing data in 4k increments?
>> >> > In other words, I would like to change the default page size on a
>> >> > x86_64 platform (4.4.0 kernel) from 4k to 12k as the minimum page
>> >> > size?  I understand I may have negative performance due to
>> >> > fragmentation. Any help would be appreciated.
>> >> >
>> >> > If this is the wrong mailing list, please let me know the right one to use.
>> >>
>> >> I won't say "no" but ammount of work neccessary is likely measured in
>> >> man-years. Plus, hardware page size _is_ 4KB.
>> >
>> > Or a few other much larger sizes. Not that it actually matters. You can
>> > implement a larger software page size for a platform but it would still
>> > neeed to be a power of two, and you'd have trouble running some existing
>> > binaries for x86.
>> >
>> > What problem are you *actually* trying to solve ?
>>
>> Thanks for responding!  I work for a company that created custom
>> hardware with 4 banks of drives. Each bank is 12 terabytes; and each
>> bank is controlled by a separate RAID controller.  We created a custom
>> block device driver that is responsible for moving data to each bank.
>> The RAID controller will then stripe the data across the appropriate
>> disks for the specified bank.  The problem we are having is by moving
>> in increments of 4k, we are unable to utilize all 48 terabytes; we are
>> only able to utilize 32 terabytes. If we could move in increments of
>> 12K that would allow us to use the full 12 terabytes for each bank.
>
> 12TB is not that big.. are we talking spinning rust or something
> special?
>
> I mean, what does it have to do with page size? 48TB device, that's 5
> SATA drives... that's not even that big.
>
>                                                                         Pavel

Yes Pavel, you are right. But, the original idea was; if we could get
the kernel block layer to emit 6K or 12K aligned blocks sizes,
then we could more easily stripe the data across the 12 drives in each
bank. Essentially, we would move more data per I/O.

Since then, we have decided to solve this problem using a different
approach; in the hardware (FPGA). Thanks for responding, and
I apologize for wasting your time.

-Kevin

> --
> (english) http://www.livejournal.com/~pavelmachek
> (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web