linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Change PAGE_SIZE from minimum 4k to 12k
@ 2017-05-16 15:27 Kevin McKinney
  2017-05-16 16:46 ` Lennart Sorensen
  2017-05-25 17:05 ` Pavel Machek
  0 siblings, 2 replies; 7+ messages in thread
From: Kevin McKinney @ 2017-05-16 15:27 UTC (permalink / raw)
  To: linux-kernel

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.

-- 
Thanks,
Kevin

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

* Re: Change PAGE_SIZE from minimum 4k to 12k
  2017-05-16 15:27 Change PAGE_SIZE from minimum 4k to 12k Kevin McKinney
@ 2017-05-16 16:46 ` Lennart Sorensen
  2017-05-25 17:05 ` Pavel Machek
  1 sibling, 0 replies; 7+ messages in thread
From: Lennart Sorensen @ 2017-05-16 16:46 UTC (permalink / raw)
  To: Kevin McKinney; +Cc: linux-kernel

On Tue, May 16, 2017 at 11:27:08AM -0400, 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 believe the answer is no.

x86 supports page sizes of 4K, 2M and 1G.  I don't believe anything else
is possible with the hardware.

The page size is not a software invention.

-- 
Len Sorensen

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

* Re: Change PAGE_SIZE from minimum 4k to 12k
  2017-05-16 15:27 Change PAGE_SIZE from minimum 4k to 12k Kevin McKinney
  2017-05-16 16:46 ` Lennart Sorensen
@ 2017-05-25 17:05 ` Pavel Machek
  2017-05-25 20:08   ` Alan Cox
  1 sibling, 1 reply; 7+ messages in thread
From: Pavel Machek @ 2017-05-25 17:05 UTC (permalink / raw)
  To: Kevin McKinney; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 826 bytes --]

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

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

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

* Re: Change PAGE_SIZE from minimum 4k to 12k
  2017-05-25 17:05 ` Pavel Machek
@ 2017-05-25 20:08   ` Alan Cox
  2017-05-25 21:02     ` Kevin McKinney
  0 siblings, 1 reply; 7+ messages in thread
From: Alan Cox @ 2017-05-25 20:08 UTC (permalink / raw)
  To: Pavel Machek; +Cc: Kevin McKinney, linux-kernel

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

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

* Re: Change PAGE_SIZE from minimum 4k to 12k
  2017-05-25 20:08   ` Alan Cox
@ 2017-05-25 21:02     ` Kevin McKinney
  2017-05-25 21:55       ` Pavel Machek
  0 siblings, 1 reply; 7+ messages in thread
From: Kevin McKinney @ 2017-05-25 21:02 UTC (permalink / raw)
  To: Alan Cox; +Cc: Pavel Machek, linux-kernel

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

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

* Re: Change PAGE_SIZE from minimum 4k to 12k
  2017-05-25 21:02     ` Kevin McKinney
@ 2017-05-25 21:55       ` Pavel Machek
  2017-05-26 13:14         ` Kevin McKinney
  0 siblings, 1 reply; 7+ messages in thread
From: Pavel Machek @ 2017-05-25 21:55 UTC (permalink / raw)
  To: Kevin McKinney; +Cc: Alan Cox, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1981 bytes --]

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

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

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

* Re: Change PAGE_SIZE from minimum 4k to 12k
  2017-05-25 21:55       ` Pavel Machek
@ 2017-05-26 13:14         ` Kevin McKinney
  0 siblings, 0 replies; 7+ messages in thread
From: Kevin McKinney @ 2017-05-26 13:14 UTC (permalink / raw)
  To: Pavel Machek; +Cc: Alan Cox, linux-kernel

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

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

end of thread, other threads:[~2017-05-26 13:14 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-16 15:27 Change PAGE_SIZE from minimum 4k to 12k Kevin McKinney
2017-05-16 16:46 ` Lennart Sorensen
2017-05-25 17:05 ` Pavel Machek
2017-05-25 20:08   ` Alan Cox
2017-05-25 21:02     ` Kevin McKinney
2017-05-25 21:55       ` Pavel Machek
2017-05-26 13:14         ` Kevin McKinney

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).