Subject: Re: linux-next: manual merge of the staging tree with the target-merge tree

From: "Nicholas A. Bellinger" <[email-masked]>
Date: Sun, 22 Jul 2012 14:44:23 -0700

On Sat, 2012-07-21 at 19:07 -0700, Greg KH wrote:
> On Fri, Jul 20, 2012 at 09:42:28PM +0300, Michael S. Tsirkin wrote:

<SNIP>

> > It's very similar to how it was with nouveau: we are not sure
> > we can commit to the userspace ABI yet.
> 
> Then you are in trouble :)
> 

I agree with MST here that tcm_vhost needs a clear way to indicate that
ABI changes are likely to occur in transmit from staging -> post-staging
status.  

> > Most importantly, it still seems not 100% clear whether this driver will
> > have major userspace using it. And if not, it would be very hard to
> > support a driver when recent userspace does not use it in the end.
> > 
> > At the moment arguments on upstream mailing list seem to be
> > a bit circular: there's no module in upstream kernel so
> > userspace does not want to accept the patches.
> > 
> > If we put enabling this driver in staging, then it works out in one of
> > two ways
> > - userspace starts using it then this effectively freezes the ABI and
> >   we move it out of staging next release
> > - no userspace uses it and we drop it completely or rework ABI
> > 
> > On the other hand, it is marginally better to not want code in staging
> > for two reasons:
> > - there are dependencies between this code and other code in
> >   drivers/vhost which are easier for me to handle if it's all
> >   in one place
> 
> If there are going to be lots of dependancies, then I don't want it in
> drivers/staging/ as it doesn't belong there, it belongs cleaned up and
> in the "real" place.
> 
> > - a bit easier to track history if we do not move code
> 
> git preserves this, don't worry about that at all.
> 
> So, if this code really does depend on core vhost changes that are going
> to be happening over time, I would not recommend it being in
> drivers/staging/ as you are right, you are going to have a hard time
> syncing with me.
> 

So Linus has merged target-pending/for-next this afternoon, so now we
are just waiting on net-next to hit mainline with the vhost patches
already ACK'ed by MST.  Hopefully that makes things easier for you to
considering taking tcm_vhost upstream via staging.  ;)

Also, MST asked for an RFC-v5 for the initial merge commit with some
minor debug wrapper changes that will be going out next week.  This will
include a move into drivers/staging/tcm_vhost/ against a rebased
staging.git patch with the necessary -rc0 mainline dependencies.

Please let me know if your OK with this, otherwise I'll just plan to
keep -v5 against target-pending/for-next-merge for now, and send a GIT
PULL after MST gets back from holiday on the 29th -> 30th.

> But don't think that by somehow marking the driver with CONFIG_STAGING
> that you get a free pass on the "we are going to break the userspace
> api", that's not ok.  Be careful about this.  Yes, it's tough, and it's
> a "chicken and egg" problem like you mention above, I know.
> 

After sleeping on this, I'm wondering if there is not something else we
could do at the QEMU level to require an explicit 'development=1' flag
in order to use vhost-scsi while tcm_vhost is still marked as staging
code..?

QEMU folks, would you be open to something like this..?

Thank you,

--nab