On Fri, May 19, 2017 at 03:46:36PM +0800, Jason Wang wrote: > > > On 2017年05月18日 16:43, Maxime Coquelin wrote: > > > > > > > > +When the VHOST_USER_PROTOCOL_F_SLAVE_REQ is supported by the > > > > slave, and the > > > > +master initiated the slave to master communication channel using the > > > > +VHOST_USER_SET_SLAVE_REQ_FD request, the slave can send IOTLB > > > > miss and access > > > > +failure events by sending VHOST_USER_SLAVE_IOTLB_MSG requests > > > > to the master > > > > +with a struct vhost_iotlb_msg payload. For miss events, the > > > > iotlb payload has > > > > +to be filled with the miss message type (1), the I/O virtual > > > > address and the > > > > +permissions flags. For access failure event, the iotlb payload > > > > has to be > > > > +filled with the access failure message type (4), the I/O > > > > virtual address and > > > > +the permissions flags. > > > > > > I don't think slave should cache invalid entries. If it does not, > > > how can it detect access failure as opposed to a miss? > > > > Of course, invalid cache entries should not be cached. > > The VHOST_IOTLB_ACCESS_FAIL has been specified for the Kernel backend, > > even if the latter does not implement it yet. > > Yes, I leave this for future use e.g reporting copy_to_user() failure to > userspace. > > Thanks
Interesting. And it's not handled now. So let's add a text "reserved for reporting internal access errors in the future. Should not be used for now.". -- MST