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

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

 



On 2012.06.05 19:01, Peter Stuge wrote:
I'm the libusb maintainer since a little less than two years.
<snip>

As one of the maintainers of libusbx, I can't help but find the overview of the libusbx fork given by Peter deceptively one sided.

Therefore I feel obligated to to provide some kind of counterpart. As you may guess, because it deals with the reasons behind the libusbx fork, the content below has of course have very little to do with the technical issue at hand, or its resolution. Therefore, if you don't care much about why forks happen, feel free to ignore it (or you can just head to http://libusbx.org for a less controversial and more succinct overview).

As to providing a short introduction, that compares with Peter's, I'll just state that I also have been a regular contributor of libusb, for more than 2 years now and I can also safely state that I invested at least as much time in it, though I don't really feel it should matter much.

Now, with the matter of why libusbx actually forked from libusb:

- More than being the result of one person not getting along with Peter, the libusbx fork was actually spearheaded in late 2011 by an actual majority of libusb contributors, who had grown more and more tired of an ever delayed release. As such, you may be pleased to know that we have a bit more than 4 people onboard. Of course, with contributors and developers always being in short supply, if any of you want to drop by and give us a hand, you are more than welcome.

- Likewise, you shouldn't be fooled with what can only be construed as a polarizing mention of Windows. In as much as Peter was reluctant to accept the position of libusb maintainer, as the main libusb/Windows contributor, I have been equally reluctant to accept a position as libusbx maintainer. This is due in part to anticipating that it could result in people mistaking or mislabelling the fork as a Windows centric project, or a mere topic-branch. In short, unlike what Peter states, I didn't actually spearhead the libusbx fork. I only happened to become one of its maintainers after two of the original Linux maintainers we had (Segher and Vitali) had to move on to other endeavours. In that respect, libusbx is really as much Windows or Linux centric as libusb is, and with 2 of our 4 current maintainers being Linux developers, I don't think there's much concern to be hadt.

Now, since Peter's presentation of libusbx has been exceedingly selective, I have to pursue with some less than pleasant exposure of his responsibility, for what can only be described as a complete breakdown of the libusb integration and release process, and which is what left us with no other alternative but to fork.

- As Peter only partially touched, libusb does have a very critical issue with having only a single maintainer, who has difficulty contributing the adequate focus to the project (we're not only talking solely about time here). The problem however is that, as far as trying to spread the workload has been concerned, and despite many requests to add more maintainers, with more than one capable community endorsed candidates ready to step up, we encountered a major hurdle in what can only be described as Peter's extraordinarily reluctance with having to share power. With the previous maintainer having long left the project, there has unfortunately been no arbitration or majority vote to be had, and at least as far as the people behind the libusbx fork are concerned, we can't exactly state that libusb is helmed by a benevolent dictator either, which is one of our major issues.

- If you look closely at the 1.0.9 release of libusb, you should spot a few alarming details: First, this release happened 2 years after the last one, despite many critical patches having been reviewed and integrated during that time. For an healthy project the size of libusb, this is astounding, especially as libusb is still missing important features such as USB hotplug events, and can't exactly be considered mature a this stage. As a result of this delay, non-git users have been left stranded, distributions have had to start maintaining their own libusb branches, and overall people found themselves wasting time, whereas we have now demonstrated that a release could easily have been produced. Another disturbing aspect of the 1.0.9 release is that it occurred without any form of preliminary announcement, let alone a proper Release Candidate, despite its 2 years delay. Instead it popped up right after the libusbx fork was officially announced. Finally, some of the major patches that were added to this release were developed internally by Peter and never submitted for review, which isn't exactly the first time such a feat occurred and should be telling of how much his alleged disagreement with libusbx, in an attempt to place a strong focus on review, can be credited...

- Also, with regards to Windows being the reason of the 2 years delay, stemming from a "problematic development effort", I can easily dismiss such a statement as preposterous, with the sole intent of using Windows as scapegoat for obvious maintenance failures that would be difficult to brush off otherwise. For what is worth, we have had quite a few very competent Windows contributors on libusb-devel, who did comment, review and test the submitted Windows patches and didn't report much of any issue with them. On the other hand, the actual integration hurdle we've been having can only be described as Peter trying to impose a very specific and uncompromising vision, which hardly anybody else appeared to share, and which we have established as hugely detrimental for the libusb community as a whole. One flagrant example of such behaviour could be Peter single handed removal of HID support from the Windows backend (once again without any form or community review) against the wishes of the majority, not on account of a technical issue, but because it just didn't fit what he had in mind. Thus, if we are to believe Peter's statement with regards to Windows integration being the main delay, one can only be astounded that, in a matter of weeks, libusbx was able to complete what libusb has failed to do for more than a full year, yet without sacrificing the review and testing process. And with the Windows code having seen little change over the last 16 months, we can also safely assert that the same effort could have happened at any time during that period, within libusb, had there been a real wish from its maintainer to see it happen.

- Finally, you may want to consider for a moment that there is still no roadmap for the libusb release process or any upcoming features integration, and you may also want to take a look at how long patches are being kept open there. You may also find that, during his time as maintainer, Peter almost always eluded the idea of providing an ETA or roadmap for a libusb release, despite the question being asked by a long stream of libusb users. IIRC, the only ETA we ever managed to obtain for the 1.0.9 release, in the last quarter of 2011 what that it was due for the end of that year. As one can plainly see, that deadline was missed by 16 months (and would probably have been delayed for even longer were it not for the libusbx fork). Not being able to tell users where a project is headed or due for so long is clearly damaging. For what is worth, libusbx provides a publicly accessible roadmap [1] and, depending on our sorting out USB 3.0 BOS retrieval support (which could actually use a Linux contribution [2], and which is the result of yet another patch submitted to, but never acted on by libusb more than a year ago), we should be on track for the next release which is planned around the middle of the month.

All in all, while controversial, I hope the above will help you consider that there may be a bit more to libusbx than our people forking over disagreement primarily related to Windows code, and that you may want to have a closer look at what each project does, and how progress occurs.

Also, more relevant to the matter at hand, I'll just conclude by stating that whether the effort to address Hans' issue is conducted in libusbx or libusb, it shouldn't matter too much for the time being. However, with libusbx subscribing to a Release Early, Release Often process (yet another reason for oure fork), it is most likely that such an enhancement will be first featured in a libusbx release.

Regards,

/Pete

[1] https://sourceforge.net/apps/trac/libusbx/roadmap
[2] https://sourceforge.net/mailarchive/forum.php?thread_name=4FCCA5E3.8080101%40akeo.ie&forum_name=libusbx-devel
--
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