> gfpflags_to_migratetype()
> if (memory_mirror_enabled()) { /* We want to mirror all unmovable pages */
> if (!(gfp_mask & __GFP_MOVABLE))
>return MIGRATE_MIRROR
> }
I'm not sure that we can divide memory into just two buckets of "mirrored" and
"movable".
My expectation
On 2015/6/26 16:34, Kamezawa Hiroyuki wrote:
> On 2015/06/26 10:43, Xishi Qiu wrote:
>> On 2015/6/26 7:54, Kamezawa Hiroyuki wrote:
>>
>>> On 2015/06/25 18:44, Xishi Qiu wrote:
On 2015/6/10 11:06, Kamezawa Hiroyuki wrote:
> On 2015/06/09 19:04, Xishi Qiu wrote:
>> On 2015/6/9
On 2015/06/26 10:43, Xishi Qiu wrote:
On 2015/6/26 7:54, Kamezawa Hiroyuki wrote:
On 2015/06/25 18:44, Xishi Qiu wrote:
On 2015/6/10 11:06, Kamezawa Hiroyuki wrote:
On 2015/06/09 19:04, Xishi Qiu wrote:
On 2015/6/9 15:12, Kamezawa Hiroyuki wrote:
On 2015/06/04 22:04, Xishi Qiu wrote:
On 2015/06/26 10:43, Xishi Qiu wrote:
On 2015/6/26 7:54, Kamezawa Hiroyuki wrote:
On 2015/06/25 18:44, Xishi Qiu wrote:
On 2015/6/10 11:06, Kamezawa Hiroyuki wrote:
On 2015/06/09 19:04, Xishi Qiu wrote:
On 2015/6/9 15:12, Kamezawa Hiroyuki wrote:
On 2015/06/04 22:04, Xishi Qiu wrote:
gfpflags_to_migratetype()
if (memory_mirror_enabled()) { /* We want to mirror all unmovable pages */
if (!(gfp_mask __GFP_MOVABLE))
return MIGRATE_MIRROR
}
I'm not sure that we can divide memory into just two buckets of mirrored and
movable.
My expectation is that
On 2015/6/26 16:34, Kamezawa Hiroyuki wrote:
On 2015/06/26 10:43, Xishi Qiu wrote:
On 2015/6/26 7:54, Kamezawa Hiroyuki wrote:
On 2015/06/25 18:44, Xishi Qiu wrote:
On 2015/6/10 11:06, Kamezawa Hiroyuki wrote:
On 2015/06/09 19:04, Xishi Qiu wrote:
On 2015/6/9 15:12, Kamezawa Hiroyuki
On 2015/6/26 7:54, Kamezawa Hiroyuki wrote:
> On 2015/06/25 18:44, Xishi Qiu wrote:
>> On 2015/6/10 11:06, Kamezawa Hiroyuki wrote:
>>
>>> On 2015/06/09 19:04, Xishi Qiu wrote:
On 2015/6/9 15:12, Kamezawa Hiroyuki wrote:
> On 2015/06/04 22:04, Xishi Qiu wrote:
>> Add the buddy
On 2015/06/25 18:44, Xishi Qiu wrote:
On 2015/6/10 11:06, Kamezawa Hiroyuki wrote:
On 2015/06/09 19:04, Xishi Qiu wrote:
On 2015/6/9 15:12, Kamezawa Hiroyuki wrote:
On 2015/06/04 22:04, Xishi Qiu wrote:
Add the buddy system interface for address range mirroring feature.
Allocate mirrored
On 2015/6/10 11:06, Kamezawa Hiroyuki wrote:
> On 2015/06/09 19:04, Xishi Qiu wrote:
>> On 2015/6/9 15:12, Kamezawa Hiroyuki wrote:
>>
>>> On 2015/06/04 22:04, Xishi Qiu wrote:
Add the buddy system interface for address range mirroring feature.
Allocate mirrored pages in MIGRATE_MIRROR
On 2015/6/10 11:06, Kamezawa Hiroyuki wrote:
On 2015/06/09 19:04, Xishi Qiu wrote:
On 2015/6/9 15:12, Kamezawa Hiroyuki wrote:
On 2015/06/04 22:04, Xishi Qiu wrote:
Add the buddy system interface for address range mirroring feature.
Allocate mirrored pages in MIGRATE_MIRROR list. If there
On 2015/06/25 18:44, Xishi Qiu wrote:
On 2015/6/10 11:06, Kamezawa Hiroyuki wrote:
On 2015/06/09 19:04, Xishi Qiu wrote:
On 2015/6/9 15:12, Kamezawa Hiroyuki wrote:
On 2015/06/04 22:04, Xishi Qiu wrote:
Add the buddy system interface for address range mirroring feature.
Allocate mirrored
On 2015/6/26 7:54, Kamezawa Hiroyuki wrote:
On 2015/06/25 18:44, Xishi Qiu wrote:
On 2015/6/10 11:06, Kamezawa Hiroyuki wrote:
On 2015/06/09 19:04, Xishi Qiu wrote:
On 2015/6/9 15:12, Kamezawa Hiroyuki wrote:
On 2015/06/04 22:04, Xishi Qiu wrote:
Add the buddy system interface for address
On 2015/06/16 2:20, Luck, Tony wrote:
On Mon, Jun 15, 2015 at 05:47:27PM +0900, Kamezawa Hiroyuki wrote:
So, there are 3 ideas.
(1) kernel only from MIRROR / user only from MOVABLE (Tony)
(2) kernel only from MIRROR / user from MOVABLE + MIRROR(ASAP) (AKPM
suggested)
This makes use
On Mon, Jun 15, 2015 at 05:47:27PM +0900, Kamezawa Hiroyuki wrote:
> So, there are 3 ideas.
>
> (1) kernel only from MIRROR / user only from MOVABLE (Tony)
> (2) kernel only from MIRROR / user from MOVABLE + MIRROR(ASAP) (AKPM
> suggested)
> This makes use of the fact MOVABLE memory is
On 2015/06/11 5:40, Luck, Tony wrote:
I guess, mirrored memory should be allocated if !__GFP_HIGHMEM or !__GFP_MOVABLE
HIGHMEM shouldn't matter - partial memory mirror only makes any sense on X86_64
systems ... 32-bit kernels
don't even boot on systems with 64GB, and the minimum rational
On 2015/06/11 5:40, Luck, Tony wrote:
I guess, mirrored memory should be allocated if !__GFP_HIGHMEM or !__GFP_MOVABLE
HIGHMEM shouldn't matter - partial memory mirror only makes any sense on X86_64
systems ... 32-bit kernels
don't even boot on systems with 64GB, and the minimum rational
On Mon, Jun 15, 2015 at 05:47:27PM +0900, Kamezawa Hiroyuki wrote:
So, there are 3 ideas.
(1) kernel only from MIRROR / user only from MOVABLE (Tony)
(2) kernel only from MIRROR / user from MOVABLE + MIRROR(ASAP) (AKPM
suggested)
This makes use of the fact MOVABLE memory is
On 2015/06/16 2:20, Luck, Tony wrote:
On Mon, Jun 15, 2015 at 05:47:27PM +0900, Kamezawa Hiroyuki wrote:
So, there are 3 ideas.
(1) kernel only from MIRROR / user only from MOVABLE (Tony)
(2) kernel only from MIRROR / user from MOVABLE + MIRROR(ASAP) (AKPM
suggested)
This makes use
> I guess, mirrored memory should be allocated if !__GFP_HIGHMEM or
> !__GFP_MOVABLE
HIGHMEM shouldn't matter - partial memory mirror only makes any sense on X86_64
systems ... 32-bit kernels
don't even boot on systems with 64GB, and the minimum rational configuration
for a machine that
I guess, mirrored memory should be allocated if !__GFP_HIGHMEM or
!__GFP_MOVABLE
HIGHMEM shouldn't matter - partial memory mirror only makes any sense on X86_64
systems ... 32-bit kernels
don't even boot on systems with 64GB, and the minimum rational configuration
for a machine that supports
On 2015/06/09 19:04, Xishi Qiu wrote:
On 2015/6/9 15:12, Kamezawa Hiroyuki wrote:
On 2015/06/04 22:04, Xishi Qiu wrote:
Add the buddy system interface for address range mirroring feature.
Allocate mirrored pages in MIGRATE_MIRROR list. If there is no mirrored pages
left, use other types
On 2015/6/9 15:12, Kamezawa Hiroyuki wrote:
> On 2015/06/04 22:04, Xishi Qiu wrote:
>> Add the buddy system interface for address range mirroring feature.
>> Allocate mirrored pages in MIGRATE_MIRROR list. If there is no mirrored pages
>> left, use other types pages.
>>
>> Signed-off-by: Xishi
On 2015/06/04 22:04, Xishi Qiu wrote:
Add the buddy system interface for address range mirroring feature.
Allocate mirrored pages in MIGRATE_MIRROR list. If there is no mirrored pages
left, use other types pages.
Signed-off-by: Xishi Qiu
---
mm/page_alloc.c | 40
On 2015/6/9 15:12, Kamezawa Hiroyuki wrote:
On 2015/06/04 22:04, Xishi Qiu wrote:
Add the buddy system interface for address range mirroring feature.
Allocate mirrored pages in MIGRATE_MIRROR list. If there is no mirrored pages
left, use other types pages.
Signed-off-by: Xishi Qiu
On 2015/06/04 22:04, Xishi Qiu wrote:
Add the buddy system interface for address range mirroring feature.
Allocate mirrored pages in MIGRATE_MIRROR list. If there is no mirrored pages
left, use other types pages.
Signed-off-by: Xishi Qiu qiuxi...@huawei.com
---
mm/page_alloc.c | 40
On 2015/06/09 19:04, Xishi Qiu wrote:
On 2015/6/9 15:12, Kamezawa Hiroyuki wrote:
On 2015/06/04 22:04, Xishi Qiu wrote:
Add the buddy system interface for address range mirroring feature.
Allocate mirrored pages in MIGRATE_MIRROR list. If there is no mirrored pages
left, use other types
On 2015/6/5 1:09, Luck, Tony wrote:
> +#ifdef CONFIG_MEMORY_MIRROR
> + if (change_to_mirror(gfp_mask, ac.high_zoneidx))
> + ac.migratetype = MIGRATE_MIRROR;
> +#endif
>
> We may have to be smarter than this here. I'd like to encourage the
> enterprise Linux distributions to set
+#ifdef CONFIG_MEMORY_MIRROR
+ if (change_to_mirror(gfp_mask, ac.high_zoneidx))
+ ac.migratetype = MIGRATE_MIRROR;
+#endif
We may have to be smarter than this here. I'd like to encourage the
enterprise Linux distributions to set CONFIG_MEMORY_MIRROR=y
But the reality is that
Add the buddy system interface for address range mirroring feature.
Allocate mirrored pages in MIGRATE_MIRROR list. If there is no mirrored pages
left, use other types pages.
Signed-off-by: Xishi Qiu
---
mm/page_alloc.c | 40 +++-
1 file changed, 39
On 2015/6/5 1:09, Luck, Tony wrote:
+#ifdef CONFIG_MEMORY_MIRROR
+ if (change_to_mirror(gfp_mask, ac.high_zoneidx))
+ ac.migratetype = MIGRATE_MIRROR;
+#endif
We may have to be smarter than this here. I'd like to encourage the
enterprise Linux distributions to set
+#ifdef CONFIG_MEMORY_MIRROR
+ if (change_to_mirror(gfp_mask, ac.high_zoneidx))
+ ac.migratetype = MIGRATE_MIRROR;
+#endif
We may have to be smarter than this here. I'd like to encourage the
enterprise Linux distributions to set CONFIG_MEMORY_MIRROR=y
But the reality is that
Add the buddy system interface for address range mirroring feature.
Allocate mirrored pages in MIGRATE_MIRROR list. If there is no mirrored pages
left, use other types pages.
Signed-off-by: Xishi Qiu qiuxi...@huawei.com
---
mm/page_alloc.c | 40 +++-
1 file
32 matches
Mail list logo