All of lore.kernel.org
 help / color / mirror / Atom feed
* [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found] ` <9DD61F30A802C4429A01CA4200E302A75B9FB085-5FK+k9557ZBZtRGVdHMbwrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
@ 2017-09-23 15:03   ` Doug Ledford
       [not found]     ` <1506179005.120853.67.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 19+ messages in thread
From: Doug Ledford @ 2017-09-23 15:03 UTC (permalink / raw)
  To: Saleem, Shiraz; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA

Sending to list and changing subject because my answer raises an issue
that I need to make others aware of...

On Tue, 2017-09-19 at 18:34 +0000, Saleem, Shiraz wrote:
> Hi Doug,
> 
> Hope you're doing well and had a good vacation.
> 
> With respect to i40iw patch submissions, the typical workflow we have
> followed is to submit i40iw patches and patch series to the mailing
> list. And you pick them up from the mailing list after feedback.
> 
> If it makes sense and makes your life easier, I could send a pull
> request for the i40iw patches submitted to the mailing list.
> 
> The pull request would be sent at some point in the future (example
> +1 week) from submission to mailing list; after the patches have got
> a chance for community feedback. I could send it on a day of the week
> specified by you. 
> 
> Let me know what you think about this suggested workflow.

That won't make much difference.  I'm pretty efficient at patchworks. 
The only time it really helps is when you need to prepare a shared pull
request, and in that case, it *must* be a pull request.

So, what am I talking about with a shared pull request?

That's my answer to people not necessarily wanting to wait until kernel
n+1 to use features they put in their net driver in kernel n.  So, this
applies to the mlx4, mlx5, cxgb3, cxgb4, bnxt_re, hns_roce, and i40iw
drivers off the top of my head.

I have no intention of pulling Dave Miller's net-next tree on any sort
of regular basis.  I will admit that there are certain circumstances
where it can't be avoided (a specific case being if someone introduces
a new core net feature, and the only consumer of that feature is their
net driver, so they are required to submit both the feature and the
first consumer together, and then if their dependent rdma driver also
needs updating to work with the modified net driver, then I have no
choice but to take a snapshot of net-next with the new core feature and
update the rdma driver or else we might end up with a broken tree). 
Waiting on things to land in net-next takes too much time and
coordination, pulling his tree pollutes mine with tons of additional
patches beyond just what's needed, and doing so played a direct role in
me missing the 4.13 merge window (there were other factors too, so I'm
not saying it was the sole reason, but it was certainly a significant
one) so I'm reluctant to do this any more than absolutely necessary.

So, what I want as the normal, day to day workflow for drivers that
need to have dependent code in the RDMA stack based upon code in the
net-next area is shared pull requests instead.

There are requirements for submitting pull requests.  It is preferred
to have a tree either on k.o or some similar place, and it is required
by Linus that a pull request from any place other than kernel.org
*must* be a PGP signed tag (but even for pull requests on trees hosted
on kernel.org, he prefers to still use PGP signed tags), so any pull
request to Dave Miller and myself will have the same requirements.

Mellanox has been doing shared pull requests for a year or so now, so
feel free to look at the mailing list archives and find one of their
pull requests to see how they do it.  They list the pull request in the
cover letter and still send the patch series (unlike the pull request I
send to Linus which is just a cover letter and none of the patches).

I want any shared pull requests to be based on nothing newer than an
rc2 kernel.  I branch my for-next branch at rc2, so if your pull
request is on something later it will pollute my main for-next branch
to merge it.  I plan to merge my own -rc pull requests after rc2 into
my for-next branch, so you won't be missing code that goes into later
rcs if you base your work on my for-next branch, so that's a second
alternative starting point for your shared pull requests should you
need it.

All of this causes me to bring up another point as well.  For-next
testing.  I've sent an email to Stephen to change his setup.  Right
now, he only pulls my for-next tag, so in order to get for-next
testing, I have to put things under my for-next tag, and this can cause
confusion and make people think I've accepted things I haven't if I
want to get early testing on code that's still waiting to be approved. 
I've requested that he change his setup to pull all of my branches on
k.o that start with k.o/for-next, so I might have one official k.o/for-
next branch for the code that's accepted, then I might create a
k.o/for-next-mlx5-pending for a branch that isn't yet approved and
merged into for-next, but it would still get for-next testing.  So, my
point here is that people shouldn't make assumptions about branches on
k.o.  Unless I've mailed the list to say the patches are accepted,
their presence in a branch on k.o is simply for advanced for-next
testing.

-- 
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    GPG KeyID: B826A3330E572FDD
    Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD

--
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

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]     ` <1506179005.120853.67.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2017-09-24 19:56       ` Jason Gunthorpe
       [not found]         ` <20170924195627.GB18007-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
  2017-09-25  3:59       ` Leon Romanovsky
  1 sibling, 1 reply; 19+ messages in thread
From: Jason Gunthorpe @ 2017-09-24 19:56 UTC (permalink / raw)
  To: Doug Ledford; +Cc: Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA

On Sat, Sep 23, 2017 at 11:03:25AM -0400, Doug Ledford wrote:

> That's my answer to people not necessarily wanting to wait until kernel
> n+1 to use features they put in their net driver in kernel n.  So, this
> applies to the mlx4, mlx5, cxgb3, cxgb4, bnxt_re, hns_roce, and i40iw
> drivers off the top of my head.

A different possible model would be to more broadly accept pull
requests for drivers and push the work to synchronize with other parts
of the tree directly to the driver folks, instead of trying to
coordinate it all yourself.

When a driver sends you a PR it will have to be 'clean' and be based
on accepted shared commits already in Linus's tree, in the net tree
and in the rdma-core tree. Ignoring shared commits, the PR can only
touch drivers/infiniband/hw/xxx. No uAPIs. Each driver team can decide
how they want to construct their PR within those guidelines.

Set a cut off of rc6 or something for these driver PRs to give time to
sort out any RDMA merge issues.

Run the core and ULP parts as a normal tree with a normal work flow,
don't integrate tricky driver PRs into the normal tree until the merge
window. Make sure this flow runs fast enough that the driver people can
pull from here when constructing their driver branch.

Run a single 'volatile' for-next tree that merges all pending
branches, including driver PRs. This is the early warning for
merge problems.

When the merge window comes around decide what to branches to send based
on what is in Linus's tree already. Maybe two PRs per merge window
will be needed to sort out dependencies, depends how fast net/etc are
at getting merged. I think other subsystems do this already?

The advantage is *you* are largely no longer worrying about timing or
monitoring the net tree or anything like that. The driver teams take
full responsibility to do that in a set time window. Either they post
an acceptable PR in time or they miss the merge window. Some scripting
is possible so you can determine on a daily basis when driver PRs become
'clean' and thus sendable to Linus. Eliminates some of the manual
coordination.

Another advantage is QA. When the driver teams QA their PR, they are
now QA'ing something with all dependent changes, and the configuration
they QA'd is recorded in the git history instead of being lost when
patches get rebased as they flow through patchworks. They have more
certainty what they will QA and they do not have to run so many
various speculative combinations.

I belive this is broadly similar to what arm-soc does for how they
manage the SOC maintainers, and deal with their crazy cross-tree
dependencies.

Review one of their presentations:

http://events.linuxfoundation.org/sites/events/files/slides/Maintaining%20a%20large%20kernel%20subsystem_0.pdf

And imagine things like SOC's are our drivers (eg omap == mlx)

arm-soc does a bit more than just this, their downstreams split
patches eg into fixes/fixes-non-critical, etc. RDMA could do that
do.

People are asking for more certainty, the best way I can think to
provide that is to let them run their own sub-tree within certain
fairly tight boundaries.

Jason
--
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

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]     ` <1506179005.120853.67.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  2017-09-24 19:56       ` Jason Gunthorpe
@ 2017-09-25  3:59       ` Leon Romanovsky
       [not found]         ` <20170925035910.GL25094-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
  1 sibling, 1 reply; 19+ messages in thread
From: Leon Romanovsky @ 2017-09-25  3:59 UTC (permalink / raw)
  To: Doug Ledford; +Cc: Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 1177 bytes --]

On Sat, Sep 23, 2017 at 11:03:25AM -0400, Doug Ledford wrote:

<...>

>
> I want any shared pull requests to be based on nothing newer than an
> rc2 kernel.  I branch my for-next branch at rc2, so if your pull
> request is on something later it will pollute my main for-next branch
> to merge it.  I plan to merge my own -rc pull requests after rc2 into
> my for-next branch, so you won't be missing code that goes into later
> rcs if you base your work on my for-next branch, so that's a second
> alternative starting point for your shared pull requests should you
> need it.

From our experience, it is not feasible to demand shared pull
requests on "newer than an rc2 kernel". The magic of shared pull request
is in the fact that it is based on the same origin for both trees.

In our case the same origin is Linus's tree and his official -rcX, which
for sure will be in both trees.

Once shared pull request is based on that tree, it will apply cleanly
on both netdev and RDMA without pollution of the trees.

And again, shared pull request shouldn't be based on any patches
accepted to netdev and/or RDMA which are not in Linus's tree.

Thanks

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]         ` <20170924195627.GB18007-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
@ 2017-09-25  4:23           ` Leon Romanovsky
       [not found]             ` <20170925042355.GM25094-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
  2017-09-25  6:42           ` Christoph Hellwig
  1 sibling, 1 reply; 19+ messages in thread
From: Leon Romanovsky @ 2017-09-25  4:23 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Doug Ledford, Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 4316 bytes --]

On Sun, Sep 24, 2017 at 01:56:27PM -0600, Jason Gunthorpe wrote:
> On Sat, Sep 23, 2017 at 11:03:25AM -0400, Doug Ledford wrote:
>
> > That's my answer to people not necessarily wanting to wait until kernel
> > n+1 to use features they put in their net driver in kernel n.  So, this
> > applies to the mlx4, mlx5, cxgb3, cxgb4, bnxt_re, hns_roce, and i40iw
> > drivers off the top of my head.
>
> A different possible model would be to more broadly accept pull
> requests for drivers and push the work to synchronize with other parts
> of the tree directly to the driver folks, instead of trying to
> coordinate it all yourself.
>
> When a driver sends you a PR it will have to be 'clean' and be based
> on accepted shared commits already in Linus's tree, in the net tree
> and in the rdma-core tree. Ignoring shared commits, the PR can only
> touch drivers/infiniband/hw/xxx. No uAPIs. Each driver team can decide
> how they want to construct their PR within those guidelines.
>
> Set a cut off of rc6 or something for these driver PRs to give time to
> sort out any RDMA merge issues.
>
> Run the core and ULP parts as a normal tree with a normal work flow,
> don't integrate tricky driver PRs into the normal tree until the merge
> window. Make sure this flow runs fast enough that the driver people can
> pull from here when constructing their driver branch.
>
> Run a single 'volatile' for-next tree that merges all pending
> branches, including driver PRs. This is the early warning for
> merge problems.
>
> When the merge window comes around decide what to branches to send based
> on what is in Linus's tree already. Maybe two PRs per merge window
> will be needed to sort out dependencies, depends how fast net/etc are
> at getting merged. I think other subsystems do this already?
>
> The advantage is *you* are largely no longer worrying about timing or
> monitoring the net tree or anything like that. The driver teams take
> full responsibility to do that in a set time window. Either they post
> an acceptable PR in time or they miss the merge window. Some scripting
> is possible so you can determine on a daily basis when driver PRs become
> 'clean' and thus sendable to Linus. Eliminates some of the manual
> coordination.
>
> Another advantage is QA. When the driver teams QA their PR, they are
> now QA'ing something with all dependent changes, and the configuration
> they QA'd is recorded in the git history instead of being lost when
> patches get rebased as they flow through patchworks. They have more
> certainty what they will QA and they do not have to run so many
> various speculative combinations.
>
> I belive this is broadly similar to what arm-soc does for how they
> manage the SOC maintainers, and deal with their crazy cross-tree
> dependencies.
>
> Review one of their presentations:
>
> http://events.linuxfoundation.org/sites/events/files/slides/Maintaining%20a%20large%20kernel%20subsystem_0.pdf
>
> And imagine things like SOC's are our drivers (eg omap == mlx)
>
> arm-soc does a bit more than just this, their downstreams split
> patches eg into fixes/fixes-non-critical, etc. RDMA could do that
> do.
>
> People are asking for more certainty, the best way I can think to
> provide that is to let them run their own sub-tree within certain
> fairly tight boundaries.

Jason,

I reread it a couple of times and still didn't find an answer for
myself. Why do we need it?

After LPC, I left with an impression that we have three main issues:
1. Overloaded maintainer who can't go without worries to PTO, especially
in this subsystem which is backed by distributed companies which work
around the globe and have a little in common with US holidays and vacations.
Next major holiday will be Christmas and at least two companies here
(and from previous years, Linus too) will continue to work.
2. Unclear guidelines to the QA.
3. Contributors to this subsystem are paid developers and not hobbyists.
It creates certain expectations from all participants.

So I believe that once we will solve the first issue, the rest will be easy.

Thanks

>
> Jason
> --
> 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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]         ` <20170924195627.GB18007-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
  2017-09-25  4:23           ` Leon Romanovsky
@ 2017-09-25  6:42           ` Christoph Hellwig
  1 sibling, 0 replies; 19+ messages in thread
From: Christoph Hellwig @ 2017-09-25  6:42 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Doug Ledford, Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA

On Sun, Sep 24, 2017 at 01:56:27PM -0600, Jason Gunthorpe wrote:
> Review one of their presentations:
> 
> http://events.linuxfoundation.org/sites/events/files/slides/Maintaining%20a%20large%20kernel%20subsystem_0.pdf
> 
> And imagine things like SOC's are our drivers (eg omap == mlx)

In case of hns it even is part of such a SOC :)
--
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

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]         ` <20170925035910.GL25094-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
@ 2017-09-25 14:53           ` Doug Ledford
       [not found]             ` <5abacb7d-3e86-4e12-ce95-a8fe472a6a09-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 19+ messages in thread
From: Doug Ledford @ 2017-09-25 14:53 UTC (permalink / raw)
  To: Leon Romanovsky; +Cc: Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA


[-- Attachment #1.1: Type: text/plain, Size: 1989 bytes --]

On 9/24/2017 11:59 PM, Leon Romanovsky wrote:
> On Sat, Sep 23, 2017 at 11:03:25AM -0400, Doug Ledford wrote:
> 
> <...>
> 
>>
>> I want any shared pull requests to be based on nothing newer than an
>> rc2 kernel.  I branch my for-next branch at rc2, so if your pull
>> request is on something later it will pollute my main for-next branch
>> to merge it.  I plan to merge my own -rc pull requests after rc2 into
>> my for-next branch, so you won't be missing code that goes into later
>> rcs if you base your work on my for-next branch, so that's a second
>> alternative starting point for your shared pull requests should you
>> need it.
> 
> From our experience, it is not feasible to demand shared pull
> requests on "newer than an rc2 kernel".

I said "nothing newer than an rc2 kernel".  Did you mean to leave out
the nothing?

> The magic of shared pull request
> is in the fact that it is based on the same origin for both trees.

Correct.  So, for instance, I'm opening up my for-next area today and it
will be based on a clean v4.14-rc2.  What I'm then asking for is that
subsequent driver shared pull requests be based on a v4.14-rc2 tree.
Your last shared pull request was mostly OK, but it was based on a
v4.13-rc4 kernel and so it would have simultaneously brought in your
patches and also all the changes between 4.13-rc2 and 4.13-rc4.

> In our case the same origin is Linus's tree and his official -rcX, which
> for sure will be in both trees.

Right, that what I want.

> Once shared pull request is based on that tree, it will apply cleanly
> on both netdev and RDMA without pollution of the trees.
> 
> And again, shared pull request shouldn't be based on any patches
> accepted to netdev and/or RDMA which are not in Linus's tree.

Exactly.


-- 
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    GPG Key ID: B826A3330E572FDD
    Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]             ` <5abacb7d-3e86-4e12-ce95-a8fe472a6a09-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2017-09-25 15:57               ` Leon Romanovsky
       [not found]                 ` <20170925155749.GO25094-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
  0 siblings, 1 reply; 19+ messages in thread
From: Leon Romanovsky @ 2017-09-25 15:57 UTC (permalink / raw)
  To: Doug Ledford; +Cc: Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 2453 bytes --]

On Mon, Sep 25, 2017 at 10:53:01AM -0400, Doug Ledford wrote:
> On 9/24/2017 11:59 PM, Leon Romanovsky wrote:
> > On Sat, Sep 23, 2017 at 11:03:25AM -0400, Doug Ledford wrote:
> >
> > <...>
> >
> >>
> >> I want any shared pull requests to be based on nothing newer than an
> >> rc2 kernel.  I branch my for-next branch at rc2, so if your pull
> >> request is on something later it will pollute my main for-next branch
> >> to merge it.  I plan to merge my own -rc pull requests after rc2 into
> >> my for-next branch, so you won't be missing code that goes into later
> >> rcs if you base your work on my for-next branch, so that's a second
> >> alternative starting point for your shared pull requests should you
> >> need it.
> >
> > From our experience, it is not feasible to demand shared pull
> > requests on "newer than an rc2 kernel".
>
> I said "nothing newer than an rc2 kernel".  Did you mean to leave out
> the nothing?

Most probably I translated it incorrectly. I wanted to say that all
shared pull requests will be -rc2, -rc3, e.t.c. and probably will never
be -rc1. Did you mean the same?

>
> > The magic of shared pull request
> > is in the fact that it is based on the same origin for both trees.
>
> Correct.  So, for instance, I'm opening up my for-next area today and it
> will be based on a clean v4.14-rc2.  What I'm then asking for is that
> subsequent driver shared pull requests be based on a v4.14-rc2 tree.
> Your last shared pull request was mostly OK, but it was based on a
> v4.13-rc4 kernel and so it would have simultaneously brought in your
> patches and also all the changes between 4.13-rc2 and 4.13-rc4.

Why is it "undesired behavior"? Anyhow git request-pull to Linus will
filter all patches which already exist in Linus's tree and you will get
merge of -rc fixes for free in your for-next.

>
> > In our case the same origin is Linus's tree and his official -rcX, which
> > for sure will be in both trees.
>
> Right, that what I want.
>
> > Once shared pull request is based on that tree, it will apply cleanly
> > on both netdev and RDMA without pollution of the trees.
> >
> > And again, shared pull request shouldn't be based on any patches
> > accepted to netdev and/or RDMA which are not in Linus's tree.
>
> Exactly.
>
>
> --
> Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
>     GPG Key ID: B826A3330E572FDD
>     Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD
>




[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]                 ` <20170925155749.GO25094-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
@ 2017-09-26  2:31                   ` Doug Ledford
       [not found]                     ` <7c01cef3-0471-8339-3498-1d9ec4f8a9d3-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 19+ messages in thread
From: Doug Ledford @ 2017-09-26  2:31 UTC (permalink / raw)
  To: Leon Romanovsky; +Cc: Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA


[-- Attachment #1.1: Type: text/plain, Size: 2953 bytes --]

On 9/25/2017 11:57 AM, Leon Romanovsky wrote:
> On Mon, Sep 25, 2017 at 10:53:01AM -0400, Doug Ledford wrote:
>> On 9/24/2017 11:59 PM, Leon Romanovsky wrote:
>>> On Sat, Sep 23, 2017 at 11:03:25AM -0400, Doug Ledford wrote:
>>>
>>> <...>
>>>
>>>>
>>>> I want any shared pull requests to be based on nothing newer than an
>>>> rc2 kernel.  I branch my for-next branch at rc2, so if your pull
>>>> request is on something later it will pollute my main for-next branch
>>>> to merge it.  I plan to merge my own -rc pull requests after rc2 into
>>>> my for-next branch, so you won't be missing code that goes into later
>>>> rcs if you base your work on my for-next branch, so that's a second
>>>> alternative starting point for your shared pull requests should you
>>>> need it.
>>>
>>> From our experience, it is not feasible to demand shared pull
>>> requests on "newer than an rc2 kernel".
>>
>> I said "nothing newer than an rc2 kernel".  Did you mean to leave out
>> the nothing?
> 
> Most probably I translated it incorrectly. I wanted to say that all
> shared pull requests will be -rc2, -rc3, e.t.c. and probably will never
> be -rc1. Did you mean the same?
> 
>>
>>> The magic of shared pull request
>>> is in the fact that it is based on the same origin for both trees.
>>
>> Correct.  So, for instance, I'm opening up my for-next area today and it
>> will be based on a clean v4.14-rc2.  What I'm then asking for is that
>> subsequent driver shared pull requests be based on a v4.14-rc2 tree.
>> Your last shared pull request was mostly OK, but it was based on a
>> v4.13-rc4 kernel and so it would have simultaneously brought in your
>> patches and also all the changes between 4.13-rc2 and 4.13-rc4.
> 
> Why is it "undesired behavior"? Anyhow git request-pull to Linus will
> filter all patches which already exist in Linus's tree and you will get
> merge of -rc fixes for free in your for-next.

You obviously have not been paying attention when Linus yells at me.
This is something he specifically does *not* want, and if you send me a
shared pull request that is based on, say, -rc4, then I can't merge it
into my for-next branch and instead of I have to carry a separate branch
and send a separate pull request just for that branch.

The reason is that Linus wants to be able to pull up gitk on my pull
request and see the changes I am submitting for easy review.  If I merge
a shared pull request that also includes an update to the -rc level of
my tree, then all those -rc patches get mixed into the gitk ordering and
it makes it hard for Linus to find just the patches he wants.  So, this
is a Linus issue, not so much my issue.  If he didn't care, I wouldn't
either, but this is the way it is.


-- 
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    GPG Key ID: B826A3330E572FDD
    Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]             ` <20170925042355.GM25094-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
@ 2017-09-26  3:33               ` Jason Gunthorpe
       [not found]                 ` <20170926033343.GA10193-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
  0 siblings, 1 reply; 19+ messages in thread
From: Jason Gunthorpe @ 2017-09-26  3:33 UTC (permalink / raw)
  To: Leon Romanovsky
  Cc: Doug Ledford, Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA

On Mon, Sep 25, 2017 at 07:23:55AM +0300, Leon Romanovsky wrote:

> I reread it a couple of times and still didn't find an answer for
> myself. Why do we need it?

The point is to make it easier for everyone to understand what is
going on by clearly documenting via git the actual dependencies that
are required, and to enable early QA on something that will actually
become merged without being rebased.

Handling cross tree dependencies is hard, and if Doug is saying it is
caused so much trouble he wants to basically stop doing it, then
exploring another way to handle it does make sense.

I think it would work better to send a complete workable PR than to
try and wrangle all the manual coordination on what should be merged
on top of what tree and so on.

Jason
--
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

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]                     ` <7c01cef3-0471-8339-3498-1d9ec4f8a9d3-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2017-09-26  5:13                       ` Leon Romanovsky
       [not found]                         ` <20170926051349.GA1230-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
  0 siblings, 1 reply; 19+ messages in thread
From: Leon Romanovsky @ 2017-09-26  5:13 UTC (permalink / raw)
  To: Doug Ledford; +Cc: Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 4350 bytes --]

On Mon, Sep 25, 2017 at 10:31:47PM -0400, Doug Ledford wrote:
> On 9/25/2017 11:57 AM, Leon Romanovsky wrote:
> > On Mon, Sep 25, 2017 at 10:53:01AM -0400, Doug Ledford wrote:
> >> On 9/24/2017 11:59 PM, Leon Romanovsky wrote:
> >>> On Sat, Sep 23, 2017 at 11:03:25AM -0400, Doug Ledford wrote:
> >>>
> >>> <...>
> >>>
> >>>>
> >>>> I want any shared pull requests to be based on nothing newer than an
> >>>> rc2 kernel.  I branch my for-next branch at rc2, so if your pull
> >>>> request is on something later it will pollute my main for-next branch
> >>>> to merge it.  I plan to merge my own -rc pull requests after rc2 into
> >>>> my for-next branch, so you won't be missing code that goes into later
> >>>> rcs if you base your work on my for-next branch, so that's a second
> >>>> alternative starting point for your shared pull requests should you
> >>>> need it.
> >>>
> >>> From our experience, it is not feasible to demand shared pull
> >>> requests on "newer than an rc2 kernel".
> >>
> >> I said "nothing newer than an rc2 kernel".  Did you mean to leave out
> >> the nothing?
> >
> > Most probably I translated it incorrectly. I wanted to say that all
> > shared pull requests will be -rc2, -rc3, e.t.c. and probably will never
> > be -rc1. Did you mean the same?
> >
> >>
> >>> The magic of shared pull request
> >>> is in the fact that it is based on the same origin for both trees.
> >>
> >> Correct.  So, for instance, I'm opening up my for-next area today and it
> >> will be based on a clean v4.14-rc2.  What I'm then asking for is that
> >> subsequent driver shared pull requests be based on a v4.14-rc2 tree.
> >> Your last shared pull request was mostly OK, but it was based on a
> >> v4.13-rc4 kernel and so it would have simultaneously brought in your
> >> patches and also all the changes between 4.13-rc2 and 4.13-rc4.
> >
> > Why is it "undesired behavior"? Anyhow git request-pull to Linus will
> > filter all patches which already exist in Linus's tree and you will get
> > merge of -rc fixes for free in your for-next.
>
> You obviously have not been paying attention when Linus yells at me.

I do, but probably we are understanding Linus's responses differently.

You probably mean the conversation after that pull request.
 * First round of RC fixes for 4.13
   https://marc.info/?l=linux-rdma&m=150039306716272&w=2

He started to complain about empty merge commit with v4.13-rc1, and continued with explanations
about difference between back and forward merges. From my point of view, my intention to base
shared pull request on latest -rcX is exactly forward (good) merge, because it ensures that
all our future submissions for net/net-next/rdma-rc/rdma-next are completely in sync and
ready to go.

> This is something he specifically does *not* want, and if you send me a
> shared pull request that is based on, say, -rc4, then I can't merge it
> into my for-next branch and instead of I have to carry a separate branch
> and send a separate pull request just for that branch.

I don't think so, but we can probably catch Linus at KS next month and
ask him directly.

>
> The reason is that Linus wants to be able to pull up gitk on my pull
> request and see the changes I am submitting for easy review.  If I merge
> a shared pull request that also includes an update to the -rc level of
> my tree, then all those -rc patches get mixed into the gitk ordering and
> it makes it hard for Linus to find just the patches he wants.  So, this
> is a Linus issue, not so much my issue.  If he didn't care, I wouldn't
> either, but this is the way it is.
>

I don't know how gitk presents git history, but the following command
"git log --graph --no-merges -- drivers/infiniband include/rdma/ include/uapi/rdma" works like
a charm and presents only RDMA related commits.

Other replies from Linus about late submission, compiler warnings, tree-wide changes,
request to separate pull requests, fix with strange name ("Add ...") are completely unrelated.

I read upto 19 Mar 2016, in that pull request Linus explained to us how we should create shared pull request.
Everything before is not relevant for shared pull requests.

Thanks

>
> --
> Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
>     GPG Key ID: B826A3330E572FDD
>     Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD
>




[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]                 ` <20170926033343.GA10193-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
@ 2017-09-26  5:28                   ` Leon Romanovsky
       [not found]                     ` <20170926052805.GC1230-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
  0 siblings, 1 reply; 19+ messages in thread
From: Leon Romanovsky @ 2017-09-26  5:28 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Doug Ledford, Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 1257 bytes --]

On Mon, Sep 25, 2017 at 09:33:43PM -0600, Jason Gunthorpe wrote:
> On Mon, Sep 25, 2017 at 07:23:55AM +0300, Leon Romanovsky wrote:
>
> > I reread it a couple of times and still didn't find an answer for
> > myself. Why do we need it?
>
> The point is to make it easier for everyone to understand what is
> going on by clearly documenting via git the actual dependencies that
> are required, and to enable early QA on something that will actually
> become merged without being rebased.
>
> Handling cross tree dependencies is hard, and if Doug is saying it is
> caused so much trouble he wants to basically stop doing it, then
> exploring another way to handle it does make sense.
>
> I think it would work better to send a complete workable PR than to
> try and wrangle all the manual coordination on what should be merged
> on top of what tree and so on.

Right, it will work better on Linus's level, but it won't work on Doug
vs. Dave level. The complete PR means that your code should apply
cleanly on netdev and RDMA at the same time.

At some point of time, usually after -rc4 for bleeding edge devices,
the netdev and RDAM trees are so different in that area (for example mlx5_core)
that the chances to have clean PR are not high.

Thanks

>
> Jason

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]                         ` <20170926051349.GA1230-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
@ 2017-09-26  6:56                           ` Leon Romanovsky
       [not found]                             ` <20170926065600.GA6816-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
  0 siblings, 1 reply; 19+ messages in thread
From: Leon Romanovsky @ 2017-09-26  6:56 UTC (permalink / raw)
  To: Doug Ledford; +Cc: Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 5224 bytes --]

On Tue, Sep 26, 2017 at 08:13:49AM +0300, Leon Romanovsky wrote:
> On Mon, Sep 25, 2017 at 10:31:47PM -0400, Doug Ledford wrote:
> > On 9/25/2017 11:57 AM, Leon Romanovsky wrote:
> > > On Mon, Sep 25, 2017 at 10:53:01AM -0400, Doug Ledford wrote:
> > >> On 9/24/2017 11:59 PM, Leon Romanovsky wrote:
> > >>> On Sat, Sep 23, 2017 at 11:03:25AM -0400, Doug Ledford wrote:
> > >>>
> > >>> <...>
> > >>>
> > >>>>
> > >>>> I want any shared pull requests to be based on nothing newer than an
> > >>>> rc2 kernel.  I branch my for-next branch at rc2, so if your pull
> > >>>> request is on something later it will pollute my main for-next branch
> > >>>> to merge it.  I plan to merge my own -rc pull requests after rc2 into
> > >>>> my for-next branch, so you won't be missing code that goes into later
> > >>>> rcs if you base your work on my for-next branch, so that's a second
> > >>>> alternative starting point for your shared pull requests should you
> > >>>> need it.
> > >>>
> > >>> From our experience, it is not feasible to demand shared pull
> > >>> requests on "newer than an rc2 kernel".
> > >>
> > >> I said "nothing newer than an rc2 kernel".  Did you mean to leave out
> > >> the nothing?
> > >
> > > Most probably I translated it incorrectly. I wanted to say that all
> > > shared pull requests will be -rc2, -rc3, e.t.c. and probably will never
> > > be -rc1. Did you mean the same?
> > >
> > >>
> > >>> The magic of shared pull request
> > >>> is in the fact that it is based on the same origin for both trees.
> > >>
> > >> Correct.  So, for instance, I'm opening up my for-next area today and it
> > >> will be based on a clean v4.14-rc2.  What I'm then asking for is that
> > >> subsequent driver shared pull requests be based on a v4.14-rc2 tree.
> > >> Your last shared pull request was mostly OK, but it was based on a
> > >> v4.13-rc4 kernel and so it would have simultaneously brought in your
> > >> patches and also all the changes between 4.13-rc2 and 4.13-rc4.
> > >
> > > Why is it "undesired behavior"? Anyhow git request-pull to Linus will
> > > filter all patches which already exist in Linus's tree and you will get
> > > merge of -rc fixes for free in your for-next.
> >
> > You obviously have not been paying attention when Linus yells at me.
>
> I do, but probably we are understanding Linus's responses differently.
>
> You probably mean the conversation after that pull request.
>  * First round of RC fixes for 4.13
>    https://marc.info/?l=linux-rdma&m=150039306716272&w=2
>
> He started to complain about empty merge commit with v4.13-rc1, and continued with explanations
> about difference between back and forward merges. From my point of view, my intention to base
> shared pull request on latest -rcX is exactly forward (good) merge, because it ensures that
> all our future submissions for net/net-next/rdma-rc/rdma-next are completely in sync and
> ready to go.

And if we are talking about back-forward merges, the following merge is
a back one and it was mentioned by Linus as a bad type of merge which
should be avoided:
 * Merge tag 'v4.14-rc2' into k.o/for-next
   https://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git/commit/?h=k.o/for-next&id=0d9c2ff1c9f7f8b339fc42ac9763b28c71f1c115

Because your previous for-next was fully merged and new one was opened after
-rc2 and your initial pull request with fixes was accepted during in -rc1 too,
you was supposed simply reset your for-next to v4.14-rc2 tag
git reset --hard v4.14-rc2) as a starting point of for-next.

Thanks

>
> > This is something he specifically does *not* want, and if you send me a
> > shared pull request that is based on, say, -rc4, then I can't merge it
> > into my for-next branch and instead of I have to carry a separate branch
> > and send a separate pull request just for that branch.
>
> I don't think so, but we can probably catch Linus at KS next month and
> ask him directly.
>
> >
> > The reason is that Linus wants to be able to pull up gitk on my pull
> > request and see the changes I am submitting for easy review.  If I merge
> > a shared pull request that also includes an update to the -rc level of
> > my tree, then all those -rc patches get mixed into the gitk ordering and
> > it makes it hard for Linus to find just the patches he wants.  So, this
> > is a Linus issue, not so much my issue.  If he didn't care, I wouldn't
> > either, but this is the way it is.
> >
>
> I don't know how gitk presents git history, but the following command
> "git log --graph --no-merges -- drivers/infiniband include/rdma/ include/uapi/rdma" works like
> a charm and presents only RDMA related commits.
>
> Other replies from Linus about late submission, compiler warnings, tree-wide changes,
> request to separate pull requests, fix with strange name ("Add ...") are completely unrelated.
>
> I read upto 19 Mar 2016, in that pull request Linus explained to us how we should create shared pull request.
> Everything before is not relevant for shared pull requests.
>
> Thanks
>
> >
> > --
> > Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> >     GPG Key ID: B826A3330E572FDD
> >     Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD
> >
>
>
>



[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]                             ` <20170926065600.GA6816-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
@ 2017-09-26 16:03                               ` Doug Ledford
       [not found]                                 ` <6fa41141-cae5-da51-94ef-afe5bdec22bd-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 19+ messages in thread
From: Doug Ledford @ 2017-09-26 16:03 UTC (permalink / raw)
  To: Leon Romanovsky; +Cc: Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA


[-- Attachment #1.1: Type: text/plain, Size: 6618 bytes --]

On 9/26/2017 2:56 AM, Leon Romanovsky wrote:
> On Tue, Sep 26, 2017 at 08:13:49AM +0300, Leon Romanovsky wrote:
>> On Mon, Sep 25, 2017 at 10:31:47PM -0400, Doug Ledford wrote:
>>> On 9/25/2017 11:57 AM, Leon Romanovsky wrote:
>>>> On Mon, Sep 25, 2017 at 10:53:01AM -0400, Doug Ledford wrote:
>>>>> On 9/24/2017 11:59 PM, Leon Romanovsky wrote:
>>>>>> On Sat, Sep 23, 2017 at 11:03:25AM -0400, Doug Ledford wrote:
>>>>>>
>>>>>> <...>
>>>>>>
>>>>>>>
>>>>>>> I want any shared pull requests to be based on nothing newer than an
>>>>>>> rc2 kernel.  I branch my for-next branch at rc2, so if your pull
>>>>>>> request is on something later it will pollute my main for-next branch
>>>>>>> to merge it.  I plan to merge my own -rc pull requests after rc2 into
>>>>>>> my for-next branch, so you won't be missing code that goes into later
>>>>>>> rcs if you base your work on my for-next branch, so that's a second
>>>>>>> alternative starting point for your shared pull requests should you
>>>>>>> need it.
>>>>>>
>>>>>> From our experience, it is not feasible to demand shared pull
>>>>>> requests on "newer than an rc2 kernel".
>>>>>
>>>>> I said "nothing newer than an rc2 kernel".  Did you mean to leave out
>>>>> the nothing?
>>>>
>>>> Most probably I translated it incorrectly. I wanted to say that all
>>>> shared pull requests will be -rc2, -rc3, e.t.c. and probably will never
>>>> be -rc1. Did you mean the same?
>>>>
>>>>>
>>>>>> The magic of shared pull request
>>>>>> is in the fact that it is based on the same origin for both trees.
>>>>>
>>>>> Correct.  So, for instance, I'm opening up my for-next area today and it
>>>>> will be based on a clean v4.14-rc2.  What I'm then asking for is that
>>>>> subsequent driver shared pull requests be based on a v4.14-rc2 tree.
>>>>> Your last shared pull request was mostly OK, but it was based on a
>>>>> v4.13-rc4 kernel and so it would have simultaneously brought in your
>>>>> patches and also all the changes between 4.13-rc2 and 4.13-rc4.
>>>>
>>>> Why is it "undesired behavior"? Anyhow git request-pull to Linus will
>>>> filter all patches which already exist in Linus's tree and you will get
>>>> merge of -rc fixes for free in your for-next.
>>>
>>> You obviously have not been paying attention when Linus yells at me.
>>
>> I do, but probably we are understanding Linus's responses differently.
>>
>> You probably mean the conversation after that pull request.
>>  * First round of RC fixes for 4.13
>>    https://marc.info/?l=linux-rdma&m=150039306716272&w=2

More than just that conversation.  There have been offline conversations
too.

>> He started to complain about empty merge commit with v4.13-rc1, and continued with explanations
>> about difference between back and forward merges. From my point of view, my intention to base
>> shared pull request on latest -rcX is exactly forward (good) merge, because it ensures that
>> all our future submissions for net/net-next/rdma-rc/rdma-next are completely in sync and
>> ready to go.

This is why, when I submit a pull request for -rc, I also merge it into
for-next.  It keeps this up to date as you say, without needing to pull
in all of the -rc, so it gives Linus an easier history to look at.  It
does not, however, sync up the net side of things.

> And if we are talking about back-forward merges, the following merge is
> a back one and it was mentioned by Linus as a bad type of merge which
> should be avoided:
>  * Merge tag 'v4.14-rc2' into k.o/for-next
>    https://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git/commit/?h=k.o/for-next&id=0d9c2ff1c9f7f8b339fc42ac9763b28c71f1c115
> 
> Because your previous for-next was fully merged

It was...

> and new one was opened after
> -rc2

It was...

> and your initial pull request with fixes was accepted during in -rc1 too,

It was...

> you was supposed simply reset your for-next to v4.14-rc2 tag
> git reset --hard v4.14-rc2) as a starting point of for-next.

I didn't think this would work on k.o (and it's why I did the merge),
but it does work.  The reason I didn't think it would work is that even
though v4.14-rc2 and my branch merged with v4.14-rc2 have the same final
image, their path to get there (as shown by git log --oneline
--topo-order) would be different.  As such, I expected the k.o git
server to kick it as a non-fast-forward update when I attempted to push
after having used git reset --hard v4.14-rc2.  But, it didn't, it took
it, and a git pull of the tree before the reset and after the reset was
totally non-eventful.  So, I won't do that next time.

> Thanks
> 
>>
>>> This is something he specifically does *not* want, and if you send me a
>>> shared pull request that is based on, say, -rc4, then I can't merge it
>>> into my for-next branch and instead of I have to carry a separate branch
>>> and send a separate pull request just for that branch.
>>
>> I don't think so, but we can probably catch Linus at KS next month and
>> ask him directly.
>>
>>>
>>> The reason is that Linus wants to be able to pull up gitk on my pull
>>> request and see the changes I am submitting for easy review.  If I merge
>>> a shared pull request that also includes an update to the -rc level of
>>> my tree, then all those -rc patches get mixed into the gitk ordering and
>>> it makes it hard for Linus to find just the patches he wants.  So, this
>>> is a Linus issue, not so much my issue.  If he didn't care, I wouldn't
>>> either, but this is the way it is.
>>>
>>
>> I don't know how gitk presents git history, but the following command
>> "git log --graph --no-merges -- drivers/infiniband include/rdma/ include/uapi/rdma" works like
>> a charm and presents only RDMA related commits.
>>
>> Other replies from Linus about late submission, compiler warnings, tree-wide changes,
>> request to separate pull requests, fix with strange name ("Add ...") are completely unrelated.
>>
>> I read upto 19 Mar 2016, in that pull request Linus explained to us how we should create shared pull request.
>> Everything before is not relevant for shared pull requests.
>>
>> Thanks
>>
>>>
>>> --
>>> Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
>>>     GPG Key ID: B826A3330E572FDD
>>>     Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD
>>>
>>
>>
>>
> 
> 


-- 
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    GPG Key ID: B826A3330E572FDD
    Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]                                 ` <6fa41141-cae5-da51-94ef-afe5bdec22bd-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2017-09-26 16:20                                   ` Doug Ledford
  2017-09-26 16:21                                   ` Leon Romanovsky
  2017-09-28 16:29                                   ` Jason Gunthorpe
  2 siblings, 0 replies; 19+ messages in thread
From: Doug Ledford @ 2017-09-26 16:20 UTC (permalink / raw)
  To: Leon Romanovsky; +Cc: Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA


[-- Attachment #1.1: Type: text/plain, Size: 302 bytes --]

On 9/26/2017 12:03 PM, Doug Ledford wrote:
> So, I won't do that next time.

That meaning the useless merge commit.

-- 
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    GPG Key ID: B826A3330E572FDD
    Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]                                 ` <6fa41141-cae5-da51-94ef-afe5bdec22bd-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  2017-09-26 16:20                                   ` Doug Ledford
@ 2017-09-26 16:21                                   ` Leon Romanovsky
       [not found]                                     ` <20170926162140.GF6816-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
  2017-09-28 16:29                                   ` Jason Gunthorpe
  2 siblings, 1 reply; 19+ messages in thread
From: Leon Romanovsky @ 2017-09-26 16:21 UTC (permalink / raw)
  To: Doug Ledford; +Cc: Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 837 bytes --]

On Tue, Sep 26, 2017 at 12:03:01PM -0400, Doug Ledford wrote:

<...>

> >> He started to complain about empty merge commit with v4.13-rc1, and continued with explanations
> >> about difference between back and forward merges. From my point of view, my intention to base
> >> shared pull request on latest -rcX is exactly forward (good) merge, because it ensures that
> >> all our future submissions for net/net-next/rdma-rc/rdma-next are completely in sync and
> >> ready to go.
>
> This is why, when I submit a pull request for -rc, I also merge it into
> for-next.  It keeps this up to date as you say, without needing to pull
> in all of the -rc, so it gives Linus an easier history to look at.  It
> does not, however, sync up the net side of things.
>

Doug,

What is the bottom line for the bases for shared pull requests?

Thanks

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]                                     ` <20170926162140.GF6816-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
@ 2017-09-26 16:23                                       ` Doug Ledford
       [not found]                                         ` <4707c600-7aec-2c14-11d6-0443c2a835e3-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 19+ messages in thread
From: Doug Ledford @ 2017-09-26 16:23 UTC (permalink / raw)
  To: Leon Romanovsky; +Cc: Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA


[-- Attachment #1.1: Type: text/plain, Size: 1178 bytes --]

On 9/26/2017 12:21 PM, Leon Romanovsky wrote:
> On Tue, Sep 26, 2017 at 12:03:01PM -0400, Doug Ledford wrote:
> 
> <...>
> 
>>>> He started to complain about empty merge commit with v4.13-rc1, and continued with explanations
>>>> about difference between back and forward merges. From my point of view, my intention to base
>>>> shared pull request on latest -rcX is exactly forward (good) merge, because it ensures that
>>>> all our future submissions for net/net-next/rdma-rc/rdma-next are completely in sync and
>>>> ready to go.
>>
>> This is why, when I submit a pull request for -rc, I also merge it into
>> for-next.  It keeps this up to date as you say, without needing to pull
>> in all of the -rc, so it gives Linus an easier history to look at.  It
>> does not, however, sync up the net side of things.
>>
> 
> Doug,
> 
> What is the bottom line for the bases for shared pull requests?
> 
> Thanks
> 

Just base it on either A) my current for-next or B) -rc2.

-- 
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    GPG Key ID: B826A3330E572FDD
    Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]                                         ` <4707c600-7aec-2c14-11d6-0443c2a835e3-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2017-09-26 16:34                                           ` Leon Romanovsky
  0 siblings, 0 replies; 19+ messages in thread
From: Leon Romanovsky @ 2017-09-26 16:34 UTC (permalink / raw)
  To: Doug Ledford; +Cc: Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 1361 bytes --]

On Tue, Sep 26, 2017 at 12:23:35PM -0400, Doug Ledford wrote:
> On 9/26/2017 12:21 PM, Leon Romanovsky wrote:
> > On Tue, Sep 26, 2017 at 12:03:01PM -0400, Doug Ledford wrote:
> >
> > <...>
> >
> >>>> He started to complain about empty merge commit with v4.13-rc1, and continued with explanations
> >>>> about difference between back and forward merges. From my point of view, my intention to base
> >>>> shared pull request on latest -rcX is exactly forward (good) merge, because it ensures that
> >>>> all our future submissions for net/net-next/rdma-rc/rdma-next are completely in sync and
> >>>> ready to go.
> >>
> >> This is why, when I submit a pull request for -rc, I also merge it into
> >> for-next.  It keeps this up to date as you say, without needing to pull
> >> in all of the -rc, so it gives Linus an easier history to look at.  It
> >> does not, however, sync up the net side of things.
> >>
> >
> > Doug,
> >
> > What is the bottom line for the bases for shared pull requests?
> >
> > Thanks
> >
>
> Just base it on either A) my current for-next or B) -rc2.

OK, in this cycle, we will have it on -rc2, but I don't know if it is always
feasible.

Thanks

>
> --
> Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
>     GPG Key ID: B826A3330E572FDD
>     Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD
>




[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]                     ` <20170926052805.GC1230-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
@ 2017-09-28 15:53                       ` Jason Gunthorpe
  0 siblings, 0 replies; 19+ messages in thread
From: Jason Gunthorpe @ 2017-09-28 15:53 UTC (permalink / raw)
  To: Leon Romanovsky
  Cc: Doug Ledford, Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA

On Tue, Sep 26, 2017 at 08:28:05AM +0300, Leon Romanovsky wrote:

> At some point of time, usually after -rc4 for bleeding edge devices,
> the netdev and RDAM trees are so different in that area (for example mlx5_core)
> that the chances to have clean PR are not high.

Well, exactly. That is the entire problem.

And it is solvable, with work and understanding. You need to use git
properly, and create a PR that starts out with a merge of the netdev
and rdma trees from the 'right point'.

But you absolutely can technically construct a driver PR that passes
QA, includes the rdma and netdev components, and all of the driver
related patches.

And I think the result would be better if the driver teams did this
directly instead of trying to explain to Doug what it is they need and
then having him do it for them.

Jason
--
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

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions)
       [not found]                                 ` <6fa41141-cae5-da51-94ef-afe5bdec22bd-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  2017-09-26 16:20                                   ` Doug Ledford
  2017-09-26 16:21                                   ` Leon Romanovsky
@ 2017-09-28 16:29                                   ` Jason Gunthorpe
  2 siblings, 0 replies; 19+ messages in thread
From: Jason Gunthorpe @ 2017-09-28 16:29 UTC (permalink / raw)
  To: Doug Ledford
  Cc: Leon Romanovsky, Saleem, Shiraz, linux-rdma-u79uwXL29TY76Z2rM5mHXA

On Tue, Sep 26, 2017 at 12:03:01PM -0400, Doug Ledford wrote:
> >> You probably mean the conversation after that pull request.
> >>  * First round of RC fixes for 4.13
> >>    https://marc.info/?l=linux-rdma&m=150039306716272&w=2
> 
> More than just that conversation.  There have been offline conversations
> too.

Other trees are certainly not doing something as restrictive as 'only
base branches off rc2'...

branches should be based off a point that makes the patches work, and
ideally, the point at which the patches were actually tested.

Patches should never, ever be applied against a branch where they are
known to be broken (either compile wise, or functionality wise)
because of missing dependent patches from other trees.

This is all done to make future bisection work properly.

Overall, the only solution is to use a variety of bases on a variety
of branches. This is what other trees are doing, and AFAIK Linus
accepts it.

So, in your new multi-branch work flow, when patches come to you, you
have to decide if they can be safely applied to an existing branch (eg
'fixes' in arm-soc nomenclature), or if a new feature branch, with a
new base is required.

You *will* find you have branch bases all over the place due to the
co-ordination with other parts of the tree.. And you may find you have
feature branches based on your own branches too if things get a bit
complex.

> I didn't think this would work on k.o (and it's why I did the merge),
> but it does work.  The reason I didn't think it would work is that
> even

The multi-branch work flow is less of a 'force push' more of a 'delete
the banch once merged', 'create a new branch at a choosen starting
point'. The fact the two branch have the same name means most people
just handle it with 'git reset --hard' and 'git push -f'..

But it is worth while to have in mind the overall picture that the
multi-branch work flow is 'create a branch at good base & apply
patches', 'merge the branch', 'discard the branch'.. repeat..

Jason
--
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

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2017-09-28 16:29 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <9DD61F30A802C4429A01CA4200E302A75B9FB085@fmsmsx116.amr.corp.intel.com>
     [not found] ` <9DD61F30A802C4429A01CA4200E302A75B9FB085-5FK+k9557ZBZtRGVdHMbwrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2017-09-23 15:03   ` [ANNOUNCE] Shared pull requests (was Re: Workflow for i40iw patch submissions) Doug Ledford
     [not found]     ` <1506179005.120853.67.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-09-24 19:56       ` Jason Gunthorpe
     [not found]         ` <20170924195627.GB18007-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-09-25  4:23           ` Leon Romanovsky
     [not found]             ` <20170925042355.GM25094-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-09-26  3:33               ` Jason Gunthorpe
     [not found]                 ` <20170926033343.GA10193-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-09-26  5:28                   ` Leon Romanovsky
     [not found]                     ` <20170926052805.GC1230-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-09-28 15:53                       ` Jason Gunthorpe
2017-09-25  6:42           ` Christoph Hellwig
2017-09-25  3:59       ` Leon Romanovsky
     [not found]         ` <20170925035910.GL25094-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-09-25 14:53           ` Doug Ledford
     [not found]             ` <5abacb7d-3e86-4e12-ce95-a8fe472a6a09-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-09-25 15:57               ` Leon Romanovsky
     [not found]                 ` <20170925155749.GO25094-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-09-26  2:31                   ` Doug Ledford
     [not found]                     ` <7c01cef3-0471-8339-3498-1d9ec4f8a9d3-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-09-26  5:13                       ` Leon Romanovsky
     [not found]                         ` <20170926051349.GA1230-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-09-26  6:56                           ` Leon Romanovsky
     [not found]                             ` <20170926065600.GA6816-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-09-26 16:03                               ` Doug Ledford
     [not found]                                 ` <6fa41141-cae5-da51-94ef-afe5bdec22bd-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-09-26 16:20                                   ` Doug Ledford
2017-09-26 16:21                                   ` Leon Romanovsky
     [not found]                                     ` <20170926162140.GF6816-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-09-26 16:23                                       ` Doug Ledford
     [not found]                                         ` <4707c600-7aec-2c14-11d6-0443c2a835e3-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-09-26 16:34                                           ` Leon Romanovsky
2017-09-28 16:29                                   ` Jason Gunthorpe

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.