Announcement

Collapse
No announcement yet.

Memory Folios Updated A 14th Time For Improving Linux Memory Management

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #11
    Originally posted by arQon View Post
    I can't speak for all the (apparently pretty poor) "defensive" code in there, but you you only need a handful of places that assume pages are 4K (or any other specific size) to run into all kinds of weird/broken/whatever behavior, all of which will always be blamed on the patchset rather than the defective code. Tracking that sort of thing down is a lot more work than writing a new allocator is.
    This isn't about page size. The kernel already supported variable sizes for a long, long time.

    This seems to be about APIs which operate at a higher level of abstraction than individual pages. However, the kernel lacked datatypes to express that. So, that's why they had to bend over backwards to do everything in terms of pages.

    The normal thing to do is introduce the new datatype and gradually start transitioning code over to it. However, I can understand that the kernel folks probably prefer to have everything transitioned over in one go. That does set a high bar, and maybe that's the reason this didn't happen sooner.

    Comment


    • #12
      Originally posted by gilboa View Post
      That said, just checked my own (proprietary) tree, and a lot of stuff hangs on having 4096 byte pages.

      Oh, well, guess I'll call it job security
      Um, perhaps you weren't aware that even x86 supports other page sizes, such as 2 MB? I think that's not uncommon in some cloud environments.

      Comment


      • #13
        Originally posted by coder View Post
        Um, perhaps you weren't aware that even x86 supports other page sizes, such as 2 MB? I think that's not uncommon in some cloud environments.

        https://en.wikipedia.org/wiki/Page_(...ple_page_sizes
        I was aware. Never needed to support it given the fact the our proprietary software runs only in controlled environments that rarely used huge pages. (In short, alloc_pages_node and PAGE_SIZE simply works )

        - Gilboa
        Last edited by gilboa; 20 July 2021, 09:46 AM.
        oVirt-HV1: Intel S2600C0, 2xE5-2658V2, 128GB, 8x2TB, 4x480GB SSD, GTX1080 (to-VM), Dell U3219Q, U2415, U2412M.
        oVirt-HV2: Intel S2400GP2, 2xE5-2448L, 120GB, 8x2TB, 4x480GB SSD, GTX730 (to-VM).
        oVirt-HV3: Gigabyte B85M-HD3, E3-1245V3, 32GB, 4x1TB, 2x480GB SSD, GTX980 (to-VM).
        Devel-2: Asus H110M-K, i5-6500, 16GB, 3x1TB + 128GB-SSD, F33.

        Comment

        Working...
        X