All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: "Luck, Tony" <tony.luck@intel.com>
Cc: Andy Lutomirski <luto@amacapital.net>,
	linux-nvdimm <linux-nvdimm@ml01.01.org>, X86 ML <x86@kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Borislav Petkov <bp@alien8.de>, Andy Lutomirski <luto@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCHV2 3/3] x86, ras: Add mcsafe_memcpy() function to recover from machine checks
Date: Fri, 11 Dec 2015 16:32:27 -0500	[thread overview]
Message-ID: <20151211213227.GA22996@char.us.oracle.com> (raw)
In-Reply-To: <3908561D78D1C84285E8C5FCA982C28F39F82D87@ORSMSX114.amr.corp.intel.com>

On Fri, Dec 11, 2015 at 09:19:17PM +0000, Luck, Tony wrote:
> > I still don't get the BIT(63) thing.  Can you explain it?
> 
> It will be more obvious when I get around to writing copy_from_user().
> 
> Then we will have a function that can take page faults if there are pages
> that are not present.  If the page faults can't be fixed we have a -EFAULT
> condition. We can also take machine checks if we reads from a location with an
> uncorrected error.
> 
> We need to distinguish these two cases because the action we take is
> different. For the unresolved page fault we already have the ABI that the
> copy_to/from_user() functions return zero for success, and a non-zero
> return is the number of not-copied bytes.
> 
> So for my new case I'm setting bit63 ... this is never going to be set for
> a failed page fault.

Isn't 63 NX?

> 
> copy_from_user() conceptually will look like this:
> 
> int copy_from_user(void *to, void *from, unsigned long n)
> {
> 	u64 ret = mcsafe_memcpy(to, from, n);
> 
> 	if (COPY_HAD_MCHECK(r)) {
> 		if (memory_failure(COPY_MCHECK_PADDR(ret) >> PAGE_SIZE, ...))
> 			force_sig(SIGBUS, current);
> 		return something;
> 	} else
> 		return ret;
> }
> 
> -Tony
> _______________________________________________
> Linux-nvdimm mailing list
> Linux-nvdimm@lists.01.org
> https://lists.01.org/mailman/listinfo/linux-nvdimm

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2015-12-11 21:32 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-11 19:13 [PATCHV2 0/3] Machine check recovery when kernel accesses poison Tony Luck
2015-12-11 19:13 ` Tony Luck
2015-12-10 21:58 ` [PATCHV2 1/3] x86, ras: Add new infrastructure for machine check fixup tables Tony Luck
2015-12-10 21:58   ` Tony Luck
2015-12-11 20:06   ` Andy Lutomirski
2015-12-11 20:06     ` Andy Lutomirski
2015-12-11 21:01     ` Luck, Tony
2015-12-11 21:01       ` Luck, Tony
2015-12-12 10:11   ` Borislav Petkov
2015-12-12 10:11     ` Borislav Petkov
2015-12-14 17:58     ` Ross Zwisler
2015-12-14 17:58       ` Ross Zwisler
2015-12-14 22:27       ` Borislav Petkov
2015-12-14 22:27         ` Borislav Petkov
2015-12-15  1:00     ` Luck, Tony
2015-12-15  1:00       ` Luck, Tony
2015-12-15  9:46       ` Borislav Petkov
2015-12-15  9:46         ` Borislav Petkov
2015-12-15 10:44         ` Borislav Petkov
2015-12-15 10:44           ` Borislav Petkov
2015-12-11  0:14 ` [PATCHV2 2/3] x86, ras: Extend machine check recovery code to annotated ring0 areas Tony Luck
2015-12-11  0:14   ` Tony Luck
2015-12-11 20:08   ` Andy Lutomirski
2015-12-11 20:08     ` Andy Lutomirski
2015-12-15 11:43   ` Borislav Petkov
2015-12-15 11:43     ` Borislav Petkov
2015-12-15 23:46     ` Luck, Tony
2015-12-15 23:46       ` Luck, Tony
2015-12-11  0:21 ` [PATCHV2 3/3] x86, ras: Add mcsafe_memcpy() function to recover from machine checks Tony Luck
2015-12-11  0:21   ` Tony Luck
2015-12-11 20:09   ` Andy Lutomirski
2015-12-11 20:09     ` Andy Lutomirski
2015-12-11 21:19     ` Luck, Tony
2015-12-11 21:19       ` Luck, Tony
2015-12-11 21:32       ` Konrad Rzeszutek Wilk [this message]
2015-12-11 21:50       ` Andy Lutomirski
2015-12-11 21:50         ` Andy Lutomirski
2015-12-11 22:17         ` Luck, Tony
2015-12-11 22:17           ` Luck, Tony
2015-12-11 22:20           ` Dan Williams
2015-12-11 22:20             ` Dan Williams
2015-12-11 22:26             ` Andy Lutomirski
2015-12-11 22:26               ` Andy Lutomirski
2015-12-11 22:35               ` Luck, Tony
2015-12-11 22:35                 ` Luck, Tony
2015-12-11 22:38                 ` Andy Lutomirski
2015-12-11 22:38                   ` Andy Lutomirski
2015-12-11 22:45                   ` Luck, Tony
2015-12-11 22:45                     ` Luck, Tony
2015-12-11 22:55                     ` Andy Lutomirski
2015-12-11 22:55                       ` Andy Lutomirski
2015-12-14  8:36                       ` Ingo Molnar
2015-12-14  8:36                         ` Ingo Molnar
2015-12-14 19:46                         ` Luck, Tony
2015-12-14 19:46                           ` Luck, Tony
2015-12-14 20:11                           ` Andy Lutomirski
2015-12-14 20:11                             ` Andy Lutomirski
2015-12-15 13:11   ` Borislav Petkov
2015-12-15 13:11     ` Borislav Petkov
2015-12-15 17:45     ` Dan Williams
2015-12-15 17:45       ` Dan Williams
2015-12-15 17:53       ` Luck, Tony
2015-12-15 17:53         ` Luck, Tony
2015-12-15 18:21         ` Borislav Petkov
2015-12-15 18:21           ` Borislav Petkov
2015-12-15 18:27         ` Dan Williams
2015-12-15 18:27           ` Dan Williams
2015-12-15 18:35           ` Dan Williams
2015-12-15 18:35             ` Dan Williams
2015-12-15 18:39             ` Borislav Petkov
2015-12-15 18:39               ` Borislav Petkov
2015-12-15 19:19               ` Elliott, Robert (Persistent Memory)
2015-12-15 19:19                 ` Elliott, Robert (Persistent Memory)
2015-12-15 19:28                 ` Borislav Petkov
2015-12-15 19:28                   ` Borislav Petkov
2015-12-15 20:25                   ` Elliott, Robert (Persistent Memory)
2015-12-15 20:25                     ` Elliott, Robert (Persistent Memory)
2015-12-21 17:33                     ` Borislav Petkov
2015-12-21 17:33                       ` Borislav Petkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151211213227.GA22996@char.us.oracle.com \
    --to=konrad.wilk@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=bp@alien8.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-nvdimm@ml01.01.org \
    --cc=luto@amacapital.net \
    --cc=luto@kernel.org \
    --cc=mingo@kernel.org \
    --cc=tony.luck@intel.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.