Re: [PATCH] x86/asm/memcpy_mcsafe: Fix copy_to_user_mcsafe() exception handling

From: Dan Williams
Date: Wed Jul 04 2018 - 19:02:43 EST


On Wed, Jul 4, 2018 at 3:38 PM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
> On Tue, Jul 03, 2018 at 10:30:40AM +0200, Ingo Molnar wrote:
>>
>> * Dan Williams <dan.j.williams@xxxxxxxxx> wrote:
>>
>> > Hi Ingo,
>> >
>> > Here is an additional copy_to_iter_mcsafe() fix to address the crash
>> > reported by Ross. This now passes xfstests:generic/323 on my system.
>>
>> The lib/iov_iter fix would need an Acked-by from Al.
>
> I can live with that; I would really like to see some documentation on
> the copy_to_iter_mcsafe(), but that's a separate story. Incidentally,
> are there any expectations of other callers appearing, or is that
> (and copy_from_iter_flushcache()) YASingleConsumerAPI?

The current cpu architectural detail preventing conversion of the
standard copy_to_iter() path to use the mcsafe flavor is that we can't
use REP MOV for fast copies and instead need to use a software loop so
that any exceptions are recoverable. When / if that is addressed, and
there is no performance difference between the two, it might make
sense to convert more users.

The _flushcache flavor, however, will likely stay limited to a single
consumer for the persistent memory use case.