[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a58b640d-e12a-7b9d-2ab0-d95a3ae6950e@arm.com>
Date: Tue, 12 Apr 2022 17:39:04 +0100
From: Robin Murphy <robin.murphy@....com>
To: Tong Tiangen <tongtiangen@...wei.com>,
Mark Rutland <mark.rutland@....com>,
James Morse <james.morse@....com>,
Andrew Morton <akpm@...ux-foundation.org>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
Dave Hansen <dave.hansen@...ux.intel.com>,
Catalin Marinas <catalin.marinas@....com>,
Will Deacon <will@...nel.org>,
Alexander Viro <viro@...iv.linux.org.uk>, x86@...nel.org,
"H . Peter Anvin" <hpa@...or.com>
Cc: linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
linux-mm@...ck.org, Kefeng Wang <wangkefeng.wang@...wei.com>,
Xie XiuQi <xiexiuqi@...wei.com>
Subject: Re: [RFC PATCH -next V3 6/6] arm64: add cow to machine check safe
On 12/04/2022 8:25 am, Tong Tiangen wrote:
[...]
> +100: ldp x2, x3, [x1]
> +101: ldp x4, x5, [x1, #16]
> +102: ldp x6, x7, [x1, #32]
> +103: ldp x8, x9, [x1, #48]
> +104: ldp x10, x11, [x1, #64]
> +105: ldp x12, x13, [x1, #80]
> +106: ldp x14, x15, [x1, #96]
> +107: ldp x16, x17, [x1, #112]
> +
> + add x0, x0, #256
> + add x1, x1, #128
> +1:
> + tst x0, #(PAGE_SIZE - 1)
> +
> +alternative_if ARM64_HAS_NO_HW_PREFETCH
> + prfm pldl1strm, [x1, #384]
> +alternative_else_nop_endif
> +
> + stnp x2, x3, [x0, #-256]
> +200: ldp x2, x3, [x1]
> + stnp x4, x5, [x0, #16 - 256]
> +201: ldp x4, x5, [x1, #16]
> + stnp x6, x7, [x0, #32 - 256]
> +202: ldp x6, x7, [x1, #32]
> + stnp x8, x9, [x0, #48 - 256]
> +203: ldp x8, x9, [x1, #48]
> + stnp x10, x11, [x0, #64 - 256]
> +204: ldp x10, x11, [x1, #64]
> + stnp x12, x13, [x0, #80 - 256]
> +205: ldp x12, x13, [x1, #80]
> + stnp x14, x15, [x0, #96 - 256]
> +206: ldp x14, x15, [x1, #96]
> + stnp x16, x17, [x0, #112 - 256]
> +207: ldp x16, x17, [x1, #112]
> +
> + add x0, x0, #128
> + add x1, x1, #128
> +
> + b.ne 1b
> +
> + stnp x2, x3, [x0, #-256]
> + stnp x4, x5, [x0, #16 - 256]
> + stnp x6, x7, [x0, #32 - 256]
> + stnp x8, x9, [x0, #48 - 256]
> + stnp x10, x11, [x0, #64 - 256]
> + stnp x12, x13, [x0, #80 - 256]
> + stnp x14, x15, [x0, #96 - 256]
> + stnp x16, x17, [x0, #112 - 256]
> +
> +300: ret
> +
> +_asm_extable_copy_page_mc 100b, 300b
> +_asm_extable_copy_page_mc 101b, 300b
> +_asm_extable_copy_page_mc 102b, 300b
> +_asm_extable_copy_page_mc 103b, 300b
> +_asm_extable_copy_page_mc 104b, 300b
> +_asm_extable_copy_page_mc 105b, 300b
> +_asm_extable_copy_page_mc 106b, 300b
> +_asm_extable_copy_page_mc 107b, 300b
> +_asm_extable_copy_page_mc 200b, 300b
> +_asm_extable_copy_page_mc 201b, 300b
> +_asm_extable_copy_page_mc 202b, 300b
> +_asm_extable_copy_page_mc 203b, 300b
> +_asm_extable_copy_page_mc 204b, 300b
> +_asm_extable_copy_page_mc 205b, 300b
> +_asm_extable_copy_page_mc 206b, 300b
> +_asm_extable_copy_page_mc 207b, 300b
Please add a USER_MC() macro to parallel the existing USER() one (we can
worry about names and eventually consolidating things later), then use
that to save all the label mess here.
Thanks,
Robin.
Powered by blists - more mailing lists