From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tim Deegan Subject: Re: [PATCH 5/5] xen: Add V4V implementation Date: Thu, 9 Aug 2012 11:38:40 +0100 Message-ID: <20120809103840.GD16986@ocelot.phlegethon.org> References: <1344023454-31425-1-git-send-email-jean.guyader@citrix.com> <1344023454-31425-6-git-send-email-jean.guyader@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1344023454-31425-6-git-send-email-jean.guyader@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jean Guyader Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org Hi, This looks pretty good; I think you've addressed almost all my comments except for one, which is really a design decision raether than an implementation one. As I said last time: ] And what about protocol? Protocol seems to have ended up as a bit of a ] second-class citizen in v4v; it's defined, and indeed required, but not ] used for routing or for acccess control, so all traffic to a given port ] _on every protocol_ ends up on the same ring. ] ] This is the inverse of the TCP/IP namespace that you're copying, where ] protocol demux happens before port demux. And I think it will bite ] someone if you ever, for example, want to send ICMP or GRE over a v4v ] channel. I see Jan has some comments on the detail; all I have to add is this: At 20:50 +0100 on 03 Aug (1344027054), Jean Guyader wrote: > + > + > +struct list_head viprules = LIST_HEAD_INIT(viprules); > +static DEFINE_RWLOCK(viprules_lock); Please add comments describing this lock and where it comes in the locking order relative to the locks below -- it looks like it's always taken after any other locks but please make it clear. > +/* > + * Structure definitions > + */ > + > +#define V4V_RING_MAGIC 0xA822f72bb0b9d8cc > +#define V4V_RING_DATA_MAGIC 0x45fe852220b801d4 Thanks for getting rid of the #ifdefs here, but you need to keep the 'ULL' suffix so this will compile properly on 32-bit. Cheers, Tim.