On Monday 02 June 2008 19:56, Jes Sorensen wrote:Yes you could, but your writels would still not be strongly ordered within (or outside) spinlock regions, which is what Linus wants (and I kind of agree with). This comes back to my posting about mmiowb and io_*mb barriers etc. Despite what you say, what you've done really _does_ change the semantics of wmb() for all drivers. It is a really sad situation we've got ourselves into somehow, AFAIKS in the hope of trying to save ourselves a tiny bit of work upfront :( (this is not just the sgi folk with mmiowb I'm talking about, but the whole random undefinedness of ordering and io barriers). The right way to make any change is never to weaken the postcondition of an existing interface *unless* you are willing to audit the entire tree and fix it. Impossible for drivers, so the correct thing to do is introduce a new interface, and move things over at an easier pace. Not rocket science. The argument that "Altix only uses a few drivers so this way we can just fix these up rather than make big modifications to large numbers of drivers" is bogus. It is far worse even for Altix if you make incompatible changes, because you first *break* every driver on your platform, then you have to audit and fix them. If you make compatible changes, then you have to do exactly the same audits to move them over to the new API, but you go from slower->faster rather than broken->non broken. As a bonus, you haven't got random broken stuff all over the tree that you forgot to audit. I don't know how there is still so much debate about this :( I have a proposal: I am a neutral party here, not being an arch maintainer, so I'll take input and write up a backward compatible API specification and force everybody to conform to it ;) --
| david | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Heiko Carstens | Re: -mm merge plans for 2.6.23 -- sys_fallocate |
git: | |
| David Miller | Re: [GIT]: Networking |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 05/37] dccp: Cleanup routines for feature negotiation |
| Lennert Buytenhek | [PATCH 16/39] mv643xx_eth: get rid of ETH_/ethernet_/eth_ prefixes |
