From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [PATCH] rdma: don't make pages writeable if not requiested Date: Thu, 21 Mar 2013 11:39:47 +0200 Message-ID: <20130321093946.GG28328@redhat.com> References: <20130321061838.GA28319@redhat.com> <20130321070357.GD28328@redhat.com> <20130321085107.GE28328@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-rdma-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Roland Dreier Cc: "Michael R. Hines" , Sean Hefty , Hal Rosenstock , Yishai Hadas , Christoph Lameter , "linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , LKML , qemu-devel-qX2TKyscuCcdnm+yROfE0A@public.gmane.org List-Id: linux-rdma@vger.kernel.org On Thu, Mar 21, 2013 at 02:13:38AM -0700, Roland Dreier wrote: > On Thu, Mar 21, 2013 at 1:51 AM, Michael S. Tsirkin wrote: > >> In that case, no, I don't see any reason for LOCAL_WRITE, since the > >> only RDMA operations that will access this memory are remote reads. > > > > What is the meaning of LOCAL_WRITE then? There are no local > > RDMA writes as far as I can see. > > Umm, it means you're giving the local adapter permission to write to > that memory. So you can use it as a receive buffer or as the target > for remote data from an RDMA read operation. Well RDMA read has it's own flag, IB_ACCESS_REMOTE_READ. I don't see why do you need to give adapter permission to use memory as a receive buffer given that you must pass the address in the post receive verb, but maybe that's what the IB spec says so that's what the applications assumed? > > OK then what we need is a new flag saying "I really do not > > intend to write into this memory please do not break > > COW or do anything else just in case I do". > > Isn't that a shared read-only mapping? > > - R. Nothing to do with how the page is mapped. We can and do write the page before registration. BTW umem.c passes in force so it breaks COW even for read-only mappings, right? -- MST -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758262Ab3CUJjT (ORCPT ); Thu, 21 Mar 2013 05:39:19 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53167 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754067Ab3CUJjS (ORCPT ); Thu, 21 Mar 2013 05:39:18 -0400 Date: Thu, 21 Mar 2013 11:39:47 +0200 From: "Michael S. Tsirkin" To: Roland Dreier Cc: "Michael R. Hines" , Sean Hefty , Hal Rosenstock , Yishai Hadas , Christoph Lameter , "linux-rdma@vger.kernel.org" , LKML , qemu-devel@nongnu.org Subject: Re: [PATCH] rdma: don't make pages writeable if not requiested Message-ID: <20130321093946.GG28328@redhat.com> References: <20130321061838.GA28319@redhat.com> <20130321070357.GD28328@redhat.com> <20130321085107.GE28328@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 21, 2013 at 02:13:38AM -0700, Roland Dreier wrote: > On Thu, Mar 21, 2013 at 1:51 AM, Michael S. Tsirkin wrote: > >> In that case, no, I don't see any reason for LOCAL_WRITE, since the > >> only RDMA operations that will access this memory are remote reads. > > > > What is the meaning of LOCAL_WRITE then? There are no local > > RDMA writes as far as I can see. > > Umm, it means you're giving the local adapter permission to write to > that memory. So you can use it as a receive buffer or as the target > for remote data from an RDMA read operation. Well RDMA read has it's own flag, IB_ACCESS_REMOTE_READ. I don't see why do you need to give adapter permission to use memory as a receive buffer given that you must pass the address in the post receive verb, but maybe that's what the IB spec says so that's what the applications assumed? > > OK then what we need is a new flag saying "I really do not > > intend to write into this memory please do not break > > COW or do anything else just in case I do". > > Isn't that a shared read-only mapping? > > - R. Nothing to do with how the page is mapped. We can and do write the page before registration. BTW umem.c passes in force so it breaks COW even for read-only mappings, right? -- MST From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:40032) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UIby0-0005qj-GI for qemu-devel@nongnu.org; Thu, 21 Mar 2013 05:39:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UIbxt-00081U-VH for qemu-devel@nongnu.org; Thu, 21 Mar 2013 05:39:24 -0400 Received: from mx1.redhat.com ([209.132.183.28]:46032) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UIbxt-000802-Nk for qemu-devel@nongnu.org; Thu, 21 Mar 2013 05:39:17 -0400 Date: Thu, 21 Mar 2013 11:39:47 +0200 From: "Michael S. Tsirkin" Message-ID: <20130321093946.GG28328@redhat.com> References: <20130321061838.GA28319@redhat.com> <20130321070357.GD28328@redhat.com> <20130321085107.GE28328@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Subject: Re: [Qemu-devel] [PATCH] rdma: don't make pages writeable if not requiested List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Roland Dreier Cc: qemu-devel@nongnu.org, "linux-rdma@vger.kernel.org" , Yishai Hadas , LKML , "Michael R. Hines" , Hal Rosenstock , Sean Hefty , Christoph Lameter On Thu, Mar 21, 2013 at 02:13:38AM -0700, Roland Dreier wrote: > On Thu, Mar 21, 2013 at 1:51 AM, Michael S. Tsirkin wrote: > >> In that case, no, I don't see any reason for LOCAL_WRITE, since the > >> only RDMA operations that will access this memory are remote reads. > > > > What is the meaning of LOCAL_WRITE then? There are no local > > RDMA writes as far as I can see. > > Umm, it means you're giving the local adapter permission to write to > that memory. So you can use it as a receive buffer or as the target > for remote data from an RDMA read operation. Well RDMA read has it's own flag, IB_ACCESS_REMOTE_READ. I don't see why do you need to give adapter permission to use memory as a receive buffer given that you must pass the address in the post receive verb, but maybe that's what the IB spec says so that's what the applications assumed? > > OK then what we need is a new flag saying "I really do not > > intend to write into this memory please do not break > > COW or do anything else just in case I do". > > Isn't that a shared read-only mapping? > > - R. Nothing to do with how the page is mapped. We can and do write the page before registration. BTW umem.c passes in force so it breaks COW even for read-only mappings, right? -- MST