Re: [RFC] xhci: Let completion handlers run before rings are restarted.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sarah.

Knowing that you probably have better things to do than comment on a fork, I appreciate the reply.

On 2012.06.07 16:57, Sarah Sharp wrote:
Thank you for providing the libusbx side of the story.  I know this
kind of email can be hard to write, and hard to respond to.

Yes, unfortunately, there's a very long history of items that is difficult to condense in an easily digestible manner for the benefit who are only now alerted that libusb had issues. It's also difficult to provide details without bordering on finger pointing, which, while relevant, isn't exactly the kind of thing one wants to see discussed on a technical and very busy mailing list.

I'm going to avoid analyzing the community
issues you had in the past, and instead focus on the future of libusbx.
I have four community-related questions that I hope you can answer:

Sure.

  1. I'm glad to hear that libusbx has four maintainers.  The more
     eyes that are reviewing code and merging changes, the better the
     code is, in my experience.  Have you defined a process for adding or
     removing libusbx maintainers in the future?

I guess the way we saw it would be a matter of having a majority of maintainers voting for the addition of a new one. The criteria for adding maintainers will of course primarily based on how much time potential candidates think they can contribute to the review, maintenance and integration process, as well as the kind of experience they can bring. Of course, we also listen to our community when they think someone should be added to the team, which is actually why we currently have 4 maintainers instead of 3, as some of us originally intended.

     It seems like you
     really want to avoid a repeat of the issue you had with the libusb
     maintainer not wanting to give up power.

That has been our main problem indeed. For more than a year, various people have tried to reach a compromise with regards to the sharing of power on libusb, but didn't manage to make it happen. From being the most outspoken with regards to these issues, I have received many requests to initiate a fork during that time, but always ended up declining. I can also indicate that both Hans and I would have preferred a more peaceful resolution. However, when it became clear that a fork was about to happen regardless, we came to the conclusion that we might as well support that effort fully.

     My suggestion is that you allow nominations for maintainer addition
     or removal from the community through the libusbx mailing list.
     When someone seconds a nomination, everyone on the list should send
     a private yay or nay vote to an unaffiliated third party, like Greg
     KH.  That third party should have the rights to add or revoke commit
     access to the libusbx repository, so you can avoid the case where
     the last-standing maintainer doesn't want to remove themselves.  You
     could probably just copy the Debian community voting model.

I don't have any objection to that model. External impartial arbitration is what has been sorely missed on the libusb project. Also, from having had to step in as a libusbx maintainer against my will, I definitely wouldn't mind being booted out of the position by a neutral third party, as it'd free up a lot of my time... ;)

I'll have to check with the other maintainers, but I really see no objection granting Greg or Alan or any other trusted third party complete administrative access to the libusbx project, to ensure a repeat of libusb can never occur.

  2. Was there ever a libusbx announcement on the linux-usb kernel
     mailing list?  Have you asked LWN to run an article on the fork?

As you may expect, we've been pretty busy with everything associated with setting the project up (we're not completely done yet) as well as trying to demonstrate through concrete actions that we can give libusb a good run for its money, but those are indeed good points. I'll make sure the 1.0.12 and subsequent releases get announced here, and I'll see what we can do about LWN as well.

     It's pretty important to rope in the USB kernel community for a new
     userspace USB library.  If you haven't sent an email detailing the
     project's homepage, mailing list, and maintainers, I suggest you do
     so.  If you have, please accept my apologies for missing it.

It was sent to libusb-devel [1] (which you should be subscribed to), with the expectation that this is of course the core group of people that needs to be alerted to the fork. But I agree that we should probably have CC'd this list as well.

  3. How have Linux distros reacted to the libusbx fork?

As was pointed out, Fedora is due to switch to libusbx and Debian is going to switch in Wheezy as well, as you already found out [2]. Hopefully, there are a few more to be publicly announced, but we haven't really had a chance to follow closely on what the various distribution's plans are.

     Are they
     providing both packages and marking that one conflicts with the
     other, or are they dropping libusb in favor of libusbx

For the two distros above, it is the latter.

     I see a note in the mailing list
     archives that Debian straight switched to libusbx, but how are the
     other Linux distros reacting?

That's what we're curious about too. Right now, we're concentrating on making sure that we avoid the pitfalls of libusb and produce a quality library, that distros can have the confidence to switch to and not look back. But what they decide is really up to them.

     I'm concerned that any work that's contributed to libusbx won't
     actually be available for distro users.  If the libusb release cycle
     is as slow and problematic as you say it is, then any changes made
     to libusb won't be available either for quite some time.  This
     leaves users needing to get releases from the git repo, which is
     less than ideal.

We're hoping that, after a few major distros have ditched libusb in favour of libusb (our recommended approach, as it is less confusing for users), and we have build a strong enough base, this problem will naturally resolve itself. From where I stand, I can only see very little future in libusb unless its maintainership changes drastically.

  4. (This is really just my opinion, feel free to ignore it.)
     Would you consider a rename of the project?  libusbx looks like a
     misspelling of libusb to me, and since they are both sourceforge
     projects, it's very easy to confuse or mistype the mailing list
     address.

The funny thing is that I personally would also have preferred (and proposed at the time) something other than libusbx, which I also wasn't thrilled about. My main concern was with ensuring that people looking for libusb would also get search results that mentioned the fork, which logically meant using a dash or or a breakable suffix in the fork name. Also, one consideration is that the original libusb, currently uses a 1.0 API as well as v1.0.x for versioning, and may therefore still want to reserve the libusb-2.0 name for a future evolution. We are trying to compete fairly, thus, hijacking libusb-2.0 could probably be considered a dirty tactic, as, outside of additional information, users will naturally prefer 2.0 over 1.0, regardless of the quality of the content.

If there's a majority preference for a specific name, or a strong dislike of libusbx, we can of course look into picking a different name.

Ok, great!  I'll dig your mail on the USB 3.0 BOS descriptor out of the
archives and reply to it.

Thanks. Looking forward to it.

With nobody having volunteered for the Linux implementation, I was planning to see if I could do that in time for the release. But even without BOS/SS_EP_companion support, we have enough features as it is (as well as fixed a potential major Linux regression with pthread that was introduced with 1.0.11), so we'll probably freeze to RC early next week in order to reach the current 2012.06.15 release target. This means that completion of BOS retrieval support for Linux is probably something that can wait a little.

BTW, would it make sense to share the BOS
parsing and printing code with lsusb?  lsusb already has support for
getting, parsing, and printing both the SS endpoint companion and BOS
descriptors.

Yes, I've seen that. I had an early look at lsusb to see what it was doing in that respect.

Or are you going to be storing the descriptors in a
different format that would make it hard to share code with lsusb?

At the moment, our implementation only returns a raw BOS descriptor, which is the concatenation of BOS header and Device Capabilities, as described in the specs. We plan to add some parsing functions to populate DevCaps structures, but most likely after we have added BOS retrieval for most platforms (we also have OS-X and *BSD to take care of). For the Endpoint Companion, as well as for all other structs, we use the specs designations (bmAttributes, etc.), which is of course the same approach as taken by lsusb, so I don't think there should be much of a problem. There may of course always exist the odd non-specs specified member, that eases the actual implementation, but it doesn't seem to apply there.

Regards,

/Pete


[1] http://marc.info/?l=libusb-devel&m=133483162507983&w=2
[2] http://packages.debian.org/changelogs/pool/main/libu/libusbx/libusbx_1.0.11-1/changelog

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux