Question about virtio_mm: why plug/unplug with 4MB granularity?

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

 



Hi David,

As the subject, I'm wondering if we can make virtio_mm plug/unplug with futher more fine granularity like

2MB?


I gave it try as below, and it works.

1. Revert this patch:   aac65321ba69("mm/memory_hotplug: simplify page onlining");

2. Tell mm hotplug core invoke online page callback with order 9 with changes as below;


```

diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index 5873563a3518..22a9636402b1 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -622,7 +622,9 @@ static int online_pages_range(unsigned long start_pfn, unsigned long nr_pages,
         * them as being online/belonging to this zone ("present").
         */
        for (pfn = start_pfn; pfn < end_pfn; pfn += 1ul << order) {
-               order = min(MAX_ORDER - 1, get_order(PFN_PHYS(end_pfn - pfn)));
+               /* 2MB callback */
+               order = min(MAX_ORDER - 2, get_order(PFN_PHYS(end_pfn - pfn)));                 /* __free_pages_core() wants pfns to be aligned to the order */
```

3. in virtio_mem driver, change subblock size to 2MB.


Thought the hack testing works, I'm feeling not safe.


Could you please help give some insights on these questions?

1. Is 4M a hard limitation?

2. What troubles we can foresee if using 2MB as granularity?


Best regards,

Eric






[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux