On Sun, 7 Mar 2021 11:16:24 -0800
Andy Lutomirski <l...@amacapital.net> wrote:

> > > > >> Some programs may use read(2), write(2), etc as ways to check if
> > > > >> memory is valid without getting a signal.  They might not want
> > > > >> signals, which means that this feature might need to be 
> > > > >> configurable.  
> > > > >
> > > > > That sounds like an appalling hack. If users need such a mechanism
> > > > > we should create some better way to do that.
> > > > >  
> > > >
> > > > Appalling hack or not, it works. So, if we’re going to send a signal to 
> > > > user code that looks like it originated from a bina fide architectural 
> > > > recoverable fault, it needs to be recoverable.  A load from a failed 
> > > > NVDIMM page is such a fault. A *kernel* load is not. So we need to 
> > > > distinguish it somehow.  
> > >
> > > Sorry for my previous mis-understanding, and i have some questions:
> > > if programs use read,write to check if if memory is valid, does it really 
> > > want to cover the poison case?  
> 
> I don't know.
> 
> > > When for such a case, an error is returned,  can the program realize it's 
> > > hwposion issue not other software error and process correctly?  
> 
> Again, I don't know.  But changing the API like this seems potentialy
> dangerous and needs to be done with care.
> 
> > >
> > > if this is the proper action, the original posion flow in current code 
> > > from read and write need to change too.
> > >  
> >
> > Sorry, another question:
> >   When programs use read(2), write(2) as ways to check if memory is valid, 
> > does it really want to check if the user page the program provided is 
> > valid, not the destination or disk space valid?  
> 
> They may well be trying to see if their memory is valid.

Thanks for your reply, and I don't know what to do.
For current code, if user program write to a block device(maybe a test try) and 
if its user copy page corrupt when in kernel copy, the process is killed with a 
SIGBUS.
And for the page fault case in this thread, the process is error returned.

-- 
Thanks!
Aili Yao

Reply via email to