Re: qemu bsd-user plans

2021-01-11 Thread Warner Losh
On Mon, Jan 11, 2021 at 6:27 AM Daniel P. Berrangé 
wrote:

> On Fri, Jan 08, 2021 at 12:41:30PM -0700, Warner Losh wrote:
> > The FreeBSD project has rewritten bsd-user. We've been working on this
> for
> > quite some time (the earliest commits date from 2013). Maybe a dozen
> people
> > have worked on this over time, and there's 3 or 4 active developers
> focused
> > on FreeBSD changes at the moment.
>
> The fact that you have 3-4 people involved in this work is will be very
> helpful to you going forward with a QEMU maintenance.
>
> The biggest problem with getting code merged into QEMU is an insufficient
> number of reviewers for the amount of patches sent. Since we have a rule
> that patches need a review from someone else who isn't the author, if there
> are two people with expertize to review patches in a given QEMU subsystem,
> then they can become self-sufficient and review each others patches on
> qemu-devel, which then makes merging much more productive.
>

Yes. That's my hope too. We've been doing this internally for changes we've
been landing lately, so I think expanding our process to also do this with
qemu upstream will be a natural progression...


> If anyone wants to be automatically CC'd on patches for bsd-user for the
> purposes of acting as a designated reviewer, they can added to MAINTAINERS
> file to, alongside the primary maintainer(s).
>

I'll be adding myself, at least, to MAINTAINERS and encouraging the others
that have been working on this to take the time to review when I post. They
are quite willing, but may lack the time, alas, so I'll do what I can to
time the patches such that at least one of them has the time in a
reasonable time frame...


> > So, my new plan is to rebase what changes I can to the tip of master and
> > submit those for review. I'll work with the developers on the FreeBSD
> side
> > to ensure they are included in reviews in addition to the normal
> qemu-devel
> > list. This will allow us to pare down the deltas between our code and
> > upstream to allow us to make progress. The changes will be held to the
> > standard 'makes things better'. Given how broken bsd-user is today in
> qemu
> > upstream, at first that will a very easy standard to make.
> >
> > The first patch I'll submit will be changing MAINTAINERS to point to me,
> > since I'm acting as the point person in this effort. I'll then re-submit
> > some other changes that I've submitted in the past, but CC the FreeBSD
> > folks that are currently active (they were only CC'd to former developers
> > who lack the time to review).
>
> > But before I get too far down this path, I thought I'd send out what's
> > going on to qemu-devel so I can get feedback and adjust the plan into
> > something that's mutually agreeable so time I put towards this is not
> > wasted.
>
> No objections from me. Since current bsd-user is orphaned, largely
> unusable, and you're volunteering your time to make it better, I'm
> supportive of whatever you believe is the most time efficient way
> to improve bsd-user.
>
> I presume some of the current QEMU maintainers knowledgable about
> linux-user will be able to review the patches, and as mentioned
> above, if other BSD devs currently active in bsd-user work can
> also provide reviews on qemu-devel that'll be useful long term.
>

Yes. Many of the patches are copied from there, as well as the initial
version coming largely from there as well (it seems, I wasn't around at the
time and base this entirely on code similarities).

The FreeBSD project makes such heavy use of this, that I really want to
find some way we can stay current and maybe even have better abstractions
that make all user-mode emulation easier...

Warner


Re: qemu bsd-user plans

2021-01-11 Thread Daniel P . Berrangé
On Fri, Jan 08, 2021 at 12:41:30PM -0700, Warner Losh wrote:
> The FreeBSD project has rewritten bsd-user. We've been working on this for
> quite some time (the earliest commits date from 2013). Maybe a dozen people
> have worked on this over time, and there's 3 or 4 active developers focused
> on FreeBSD changes at the moment.

The fact that you have 3-4 people involved in this work is will be very
helpful to you going forward with a QEMU maintenance.

The biggest problem with getting code merged into QEMU is an insufficient
number of reviewers for the amount of patches sent. Since we have a rule
that patches need a review from someone else who isn't the author, if there
are two people with expertize to review patches in a given QEMU subsystem,
then they can become self-sufficient and review each others patches on
qemu-devel, which then makes merging much more productive.

If anyone wants to be automatically CC'd on patches for bsd-user for the
purposes of acting as a designated reviewer, they can added to MAINTAINERS
file to, alongside the primary maintainer(s).


> So, my new plan is to rebase what changes I can to the tip of master and
> submit those for review. I'll work with the developers on the FreeBSD side
> to ensure they are included in reviews in addition to the normal qemu-devel
> list. This will allow us to pare down the deltas between our code and
> upstream to allow us to make progress. The changes will be held to the
> standard 'makes things better'. Given how broken bsd-user is today in qemu
> upstream, at first that will a very easy standard to make.
>
> The first patch I'll submit will be changing MAINTAINERS to point to me,
> since I'm acting as the point person in this effort. I'll then re-submit
> some other changes that I've submitted in the past, but CC the FreeBSD
> folks that are currently active (they were only CC'd to former developers
> who lack the time to review).

> But before I get too far down this path, I thought I'd send out what's
> going on to qemu-devel so I can get feedback and adjust the plan into
> something that's mutually agreeable so time I put towards this is not
> wasted.

No objections from me. Since current bsd-user is orphaned, largely
unusable, and you're volunteering your time to make it better, I'm
supportive of whatever you believe is the most time efficient way
to improve bsd-user.

I presume some of the current QEMU maintainers knowledgable about
linux-user will be able to review the patches, and as mentioned
above, if other BSD devs currently active in bsd-user work can
also provide reviews on qemu-devel that'll be useful long term.


Regards,
Daniel
-- 
|: https://berrange.com  -o-https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o-https://fstop138.berrange.com :|
|: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|




Re: qemu bsd-user plans

2021-01-11 Thread Thomas Huth

On 08/01/2021 20.56, Peter Maydell wrote:

Adding the people to the CC list who were on the previous discussion thread...

-- PMM


On Fri, 8 Jan 2021 at 19:43, Warner Losh  wrote:

[...]

So, my new plan is to rebase what changes I can to the tip of master and submit 
those for review. I'll work with the developers on the FreeBSD side to ensure 
they are included in reviews in addition to the normal qemu-devel list. This 
will allow us to pare down the deltas between our code and upstream to allow us 
to make progress. The changes will be held to the standard 'makes things 
better'. Given how broken bsd-user is today in qemu upstream, at first that 
will a very easy standard to make.

The first patch I'll submit will be changing MAINTAINERS to point to me, since 
I'm acting as the point person in this effort. I'll then re-submit some other 
changes that I've submitted in the past, but CC the FreeBSD folks that are 
currently active (they were only CC'd to former developers who lack the time to 
review).

But before I get too far down this path, I thought I'd send out what's going on 
to qemu-devel so I can get feedback and adjust the plan into something that's 
mutually agreeable so time I put towards this is not wasted.

So, what do people think of these plans?


Sounds like a good way forward. Are you familiar with sending git pull 
requests? I think once the patch to MAINTAINERS has been accepted, it's 
maybe best if you send out pull request on your own once the patches got 
reviewed on the mailing list - otherwise it might get cumbersome to find a 
maintainers tree where the patches can go through.


 Thomas




Re: qemu bsd-user plans

2021-01-09 Thread Warner Losh
On Sat, Jan 9, 2021 at 10:03 AM Kyle Evans  wrote:

> On Fri, 8 Jan 2021 at 19:43, Warner Losh  wrote:
> >
> > The FreeBSD project has rewritten bsd-user. We've been working on this
> for quite some time (the earliest commits date from 2013). Maybe a dozen
> people have worked on this over time, and there's 3 or 4 active developers
> focused on FreeBSD changes at the moment.
> >
> > For a while, we'd merge in upstream changes from qemu. This worked great
> for us, but left us with a big backlog that was hard to upstream. Each of
> the updates took some time, so we got a little behind.
> >
> > So, a few years ago, I spent several weeks converting the tangled merge
> mess into a set of linear patches and started moving that forward. This was
> around the time 4.0 was released. I only managed to get the rebase forward
> to 3.1 release at the time before I hit problems related to poor testing
> environment making it hard to verify newer versions were still working.
> Plus, we found a few bugs that took a while to resolve for a number of
> reasons. Now that they are resolved, we're able to use qemu-bsd-user to
> build ~30k packages for arm, and ~20k for different types of mips in
> FreeBSD "ports" system. We now have great confidence that it's working well
> again.
> >
> > Now that those bugs are resolved, I started trying to forward-port the
> two-year-old base and immediately found myself hitting a number of
> problems. A big problem was that I was re-doing a lot of work that was due
> to innoculous changes upstream that I wouldn't have to do if the bsd-user
> changes were upstream. These changes get in the way of dealing with the
> more substantial structural changes in qemu that have happened.
> >
> > There had been talk of doing a remove and replace update of bsd-user.
> This talk was before I managed to rebase things as far forward as 3.1 even.
> This appealed to me because we've accumulated about 150 patches to date,
> many quite large, and curating them into a set of maybe 400 or 500 changes
> to match the size and scope of most patches I've seen posted to qemu-devel
> seemed overwhelming.
> >
> > However, it's been another year since that plan was hatched, and it's
> become clear to me that plan won't end in success. The closest I've been
> able to get is 3.1 when 4.1 was current (about 6 months behind). It's time
> for a new plan.
> >
>
> As one of the developers on the FreeBSD side, I agree with this. In
> addition to the reasons cited, reintroducing it would really take a
> lot more time and effort and I'm not convinced it would ever be
> completed because, IMO, going that route should really entail
> redesigning it from the ground-up based on an abstraction of
> linux-user. I find that right now I'm playing a lot of catch-up
> because we seem to be largely copied from linux-user without later
> improvement; there is a really healthy amount of platform-independent
> stuff that really should end up ultimately shared in a qemu-user or
> something to that effect to mitigate duplication of effort.
>

Yes. Once we have things upstream the normal 'refactoring' work can be done
there, rather than in a side repo where it will quickly go stale. Also,
once it's in upstream, then the NetBSD and OpenBSD folks can come back to
the table with a much smaller delta to get things working again than they
have today.


> > So, my new plan is to rebase what changes I can to the tip of master and
> submit those for review. I'll work with the developers on the FreeBSD side
> to ensure they are included in reviews in addition to the normal qemu-devel
> list. This will allow us to pare down the deltas between our code and
> upstream to allow us to make progress. The changes will be held to the
> standard 'makes things better'. Given how broken bsd-user is today in qemu
> upstream, at first that will a very easy standard to make.
> >
> > The first patch I'll submit will be changing MAINTAINERS to point to me,
> since I'm acting as the point person in this effort. I'll then re-submit
> some other changes that I've submitted in the past, but CC the FreeBSD
> folks that are currently active (they were only CC'd to former developers
> who lack the time to review).
> >
>
> Thanks for taking this on!
>

You bet.

Warner


Re: qemu bsd-user plans

2021-01-09 Thread Kyle Evans
On Fri, 8 Jan 2021 at 19:43, Warner Losh  wrote:
>
> The FreeBSD project has rewritten bsd-user. We've been working on this for 
> quite some time (the earliest commits date from 2013). Maybe a dozen people 
> have worked on this over time, and there's 3 or 4 active developers focused 
> on FreeBSD changes at the moment.
>
> For a while, we'd merge in upstream changes from qemu. This worked great for 
> us, but left us with a big backlog that was hard to upstream. Each of the 
> updates took some time, so we got a little behind.
>
> So, a few years ago, I spent several weeks converting the tangled merge mess 
> into a set of linear patches and started moving that forward. This was around 
> the time 4.0 was released. I only managed to get the rebase forward to 3.1 
> release at the time before I hit problems related to poor testing environment 
> making it hard to verify newer versions were still working. Plus, we found a 
> few bugs that took a while to resolve for a number of reasons. Now that they 
> are resolved, we're able to use qemu-bsd-user to build ~30k packages for arm, 
> and ~20k for different types of mips in FreeBSD "ports" system. We now have 
> great confidence that it's working well again.
>
> Now that those bugs are resolved, I started trying to forward-port the 
> two-year-old base and immediately found myself hitting a number of problems. 
> A big problem was that I was re-doing a lot of work that was due to 
> innoculous changes upstream that I wouldn't have to do if the bsd-user 
> changes were upstream. These changes get in the way of dealing with the more 
> substantial structural changes in qemu that have happened.
>
> There had been talk of doing a remove and replace update of bsd-user. This 
> talk was before I managed to rebase things as far forward as 3.1 even. This 
> appealed to me because we've accumulated about 150 patches to date, many 
> quite large, and curating them into a set of maybe 400 or 500 changes to 
> match the size and scope of most patches I've seen posted to qemu-devel 
> seemed overwhelming.
>
> However, it's been another year since that plan was hatched, and it's become 
> clear to me that plan won't end in success. The closest I've been able to get 
> is 3.1 when 4.1 was current (about 6 months behind). It's time for a new plan.
>

As one of the developers on the FreeBSD side, I agree with this. In
addition to the reasons cited, reintroducing it would really take a
lot more time and effort and I'm not convinced it would ever be
completed because, IMO, going that route should really entail
redesigning it from the ground-up based on an abstraction of
linux-user. I find that right now I'm playing a lot of catch-up
because we seem to be largely copied from linux-user without later
improvement; there is a really healthy amount of platform-independent
stuff that really should end up ultimately shared in a qemu-user or
something to that effect to mitigate duplication of effort.

> So, my new plan is to rebase what changes I can to the tip of master and 
> submit those for review. I'll work with the developers on the FreeBSD side to 
> ensure they are included in reviews in addition to the normal qemu-devel 
> list. This will allow us to pare down the deltas between our code and 
> upstream to allow us to make progress. The changes will be held to the 
> standard 'makes things better'. Given how broken bsd-user is today in qemu 
> upstream, at first that will a very easy standard to make.
>
> The first patch I'll submit will be changing MAINTAINERS to point to me, 
> since I'm acting as the point person in this effort. I'll then re-submit some 
> other changes that I've submitted in the past, but CC the FreeBSD folks that 
> are currently active (they were only CC'd to former developers who lack the 
> time to review).
>

Thanks for taking this on!


Kyle Evans



Re: qemu bsd-user plans

2021-01-08 Thread Warner Losh
And add a couple of FreeBSD people I also forgot to CC.

Warner

On Fri, Jan 8, 2021 at 12:56 PM Peter Maydell 
wrote:

> Adding the people to the CC list who were on the previous discussion
> thread...
>
> -- PMM
>
>
> On Fri, 8 Jan 2021 at 19:43, Warner Losh  wrote:
> >
> > The FreeBSD project has rewritten bsd-user. We've been working on this
> for quite some time (the earliest commits date from 2013). Maybe a dozen
> people have worked on this over time, and there's 3 or 4 active developers
> focused on FreeBSD changes at the moment.
> >
> > For a while, we'd merge in upstream changes from qemu. This worked great
> for us, but left us with a big backlog that was hard to upstream. Each of
> the updates took some time, so we got a little behind.
> >
> > So, a few years ago, I spent several weeks converting the tangled merge
> mess into a set of linear patches and started moving that forward. This was
> around the time 4.0 was released. I only managed to get the rebase forward
> to 3.1 release at the time before I hit problems related to poor testing
> environment making it hard to verify newer versions were still working.
> Plus, we found a few bugs that took a while to resolve for a number of
> reasons. Now that they are resolved, we're able to use qemu-bsd-user to
> build ~30k packages for arm, and ~20k for different types of mips in
> FreeBSD "ports" system. We now have great confidence that it's working well
> again.
> >
> > Now that those bugs are resolved, I started trying to forward-port the
> two-year-old base and immediately found myself hitting a number of
> problems. A big problem was that I was re-doing a lot of work that was due
> to innoculous changes upstream that I wouldn't have to do if the bsd-user
> changes were upstream. These changes get in the way of dealing with the
> more substantial structural changes in qemu that have happened.
> >
> > There had been talk of doing a remove and replace update of bsd-user.
> This talk was before I managed to rebase things as far forward as 3.1 even.
> This appealed to me because we've accumulated about 150 patches to date,
> many quite large, and curating them into a set of maybe 400 or 500 changes
> to match the size and scope of most patches I've seen posted to qemu-devel
> seemed overwhelming.
> >
> > However, it's been another year since that plan was hatched, and it's
> become clear to me that plan won't end in success. The closest I've been
> able to get is 3.1 when 4.1 was current (about 6 months behind). It's time
> for a new plan.
> >
> > So, my new plan is to rebase what changes I can to the tip of master and
> submit those for review. I'll work with the developers on the FreeBSD side
> to ensure they are included in reviews in addition to the normal qemu-devel
> list. This will allow us to pare down the deltas between our code and
> upstream to allow us to make progress. The changes will be held to the
> standard 'makes things better'. Given how broken bsd-user is today in qemu
> upstream, at first that will a very easy standard to make.
> >
> > The first patch I'll submit will be changing MAINTAINERS to point to me,
> since I'm acting as the point person in this effort. I'll then re-submit
> some other changes that I've submitted in the past, but CC the FreeBSD
> folks that are currently active (they were only CC'd to former developers
> who lack the time to review).
> >
> > But before I get too far down this path, I thought I'd send out what's
> going on to qemu-devel so I can get feedback and adjust the plan into
> something that's mutually agreeable so time I put towards this is not
> wasted.
> >
> > So, what do people think of these plans?
> >
> > Warner
>


Re: qemu bsd-user plans

2021-01-08 Thread Peter Maydell
Adding the people to the CC list who were on the previous discussion thread...

-- PMM


On Fri, 8 Jan 2021 at 19:43, Warner Losh  wrote:
>
> The FreeBSD project has rewritten bsd-user. We've been working on this for 
> quite some time (the earliest commits date from 2013). Maybe a dozen people 
> have worked on this over time, and there's 3 or 4 active developers focused 
> on FreeBSD changes at the moment.
>
> For a while, we'd merge in upstream changes from qemu. This worked great for 
> us, but left us with a big backlog that was hard to upstream. Each of the 
> updates took some time, so we got a little behind.
>
> So, a few years ago, I spent several weeks converting the tangled merge mess 
> into a set of linear patches and started moving that forward. This was around 
> the time 4.0 was released. I only managed to get the rebase forward to 3.1 
> release at the time before I hit problems related to poor testing environment 
> making it hard to verify newer versions were still working. Plus, we found a 
> few bugs that took a while to resolve for a number of reasons. Now that they 
> are resolved, we're able to use qemu-bsd-user to build ~30k packages for arm, 
> and ~20k for different types of mips in FreeBSD "ports" system. We now have 
> great confidence that it's working well again.
>
> Now that those bugs are resolved, I started trying to forward-port the 
> two-year-old base and immediately found myself hitting a number of problems. 
> A big problem was that I was re-doing a lot of work that was due to 
> innoculous changes upstream that I wouldn't have to do if the bsd-user 
> changes were upstream. These changes get in the way of dealing with the more 
> substantial structural changes in qemu that have happened.
>
> There had been talk of doing a remove and replace update of bsd-user. This 
> talk was before I managed to rebase things as far forward as 3.1 even. This 
> appealed to me because we've accumulated about 150 patches to date, many 
> quite large, and curating them into a set of maybe 400 or 500 changes to 
> match the size and scope of most patches I've seen posted to qemu-devel 
> seemed overwhelming.
>
> However, it's been another year since that plan was hatched, and it's become 
> clear to me that plan won't end in success. The closest I've been able to get 
> is 3.1 when 4.1 was current (about 6 months behind). It's time for a new plan.
>
> So, my new plan is to rebase what changes I can to the tip of master and 
> submit those for review. I'll work with the developers on the FreeBSD side to 
> ensure they are included in reviews in addition to the normal qemu-devel 
> list. This will allow us to pare down the deltas between our code and 
> upstream to allow us to make progress. The changes will be held to the 
> standard 'makes things better'. Given how broken bsd-user is today in qemu 
> upstream, at first that will a very easy standard to make.
>
> The first patch I'll submit will be changing MAINTAINERS to point to me, 
> since I'm acting as the point person in this effort. I'll then re-submit some 
> other changes that I've submitted in the past, but CC the FreeBSD folks that 
> are currently active (they were only CC'd to former developers who lack the 
> time to review).
>
> But before I get too far down this path, I thought I'd send out what's going 
> on to qemu-devel so I can get feedback and adjust the plan into something 
> that's mutually agreeable so time I put towards this is not wasted.
>
> So, what do people think of these plans?
>
> Warner



qemu bsd-user plans

2021-01-08 Thread Warner Losh
The FreeBSD project has rewritten bsd-user. We've been working on this for
quite some time (the earliest commits date from 2013). Maybe a dozen people
have worked on this over time, and there's 3 or 4 active developers focused
on FreeBSD changes at the moment.

For a while, we'd merge in upstream changes from qemu. This worked great
for us, but left us with a big backlog that was hard to upstream. Each of
the updates took some time, so we got a little behind.

So, a few years ago, I spent several weeks converting the tangled merge
mess into a set of linear patches and started moving that forward. This was
around the time 4.0 was released. I only managed to get the rebase forward
to 3.1 release at the time before I hit problems related to poor testing
environment making it hard to verify newer versions were still working.
Plus, we found a few bugs that took a while to resolve for a number of
reasons. Now that they are resolved, we're able to use qemu-bsd-user to
build ~30k packages for arm, and ~20k for different types of mips in
FreeBSD "ports" system. We now have great confidence that it's working well
again.

Now that those bugs are resolved, I started trying to forward-port the
two-year-old base and immediately found myself hitting a number of
problems. A big problem was that I was re-doing a lot of work that was due
to innoculous changes upstream that I wouldn't have to do if the bsd-user
changes were upstream. These changes get in the way of dealing with the
more substantial structural changes in qemu that have happened.

There had been talk of doing a remove and replace update of bsd-user. This
talk was before I managed to rebase things as far forward as 3.1 even. This
appealed to me because we've accumulated about 150 patches to date, many
quite large, and curating them into a set of maybe 400 or 500 changes to
match the size and scope of most patches I've seen posted to qemu-devel
seemed overwhelming.

However, it's been another year since that plan was hatched, and it's
become clear to me that plan won't end in success. The closest I've been
able to get is 3.1 when 4.1 was current (about 6 months behind). It's time
for a new plan.

So, my new plan is to rebase what changes I can to the tip of master and
submit those for review. I'll work with the developers on the FreeBSD side
to ensure they are included in reviews in addition to the normal qemu-devel
list. This will allow us to pare down the deltas between our code and
upstream to allow us to make progress. The changes will be held to the
standard 'makes things better'. Given how broken bsd-user is today in qemu
upstream, at first that will a very easy standard to make.

The first patch I'll submit will be changing MAINTAINERS to point to me,
since I'm acting as the point person in this effort. I'll then re-submit
some other changes that I've submitted in the past, but CC the FreeBSD
folks that are currently active (they were only CC'd to former developers
who lack the time to review).

But before I get too far down this path, I thought I'd send out what's
going on to qemu-devel so I can get feedback and adjust the plan into
something that's mutually agreeable so time I put towards this is not
wasted.

So, what do people think of these plans?

Warner