Muli Ben-Yehuda's journal

October 23, 2005

weekend shenanigans

Filed under: Uncategorized — Muli Ben-Yehuda @ 11:52 AM

On Friday I switched our home connection from ADSL to cable, since we’re getting cable practically for free from work and ADSL is decidedly non-free. I’ve been resisting this change for a while, since I have somewhat of an emotional attachment to ADSL, but Orna has been pushing for it and I gave up. Cable works quite well so far.

Then I continued working on the DMA mapping patch and after testing it on a bunch of machines sent the first version (-C1) to lkml.

In the evening we caught Kate and Leopold on TV, which was surprisingly enjoyable.

On Saturday, I woke up early and submitted a follow up Xen patch to this bug. The Cambridge guys committed both my and Jeremy Katz’s patches, so the follow-up reverted mine (Jeremy’s was much prettier). Then we drove to Tel Aviv for lunch at Orna’s sister’s and her boyfriend’s apartment. Lunch was highly enjoyable and their apartment is gorgeous.

In the afternoon we visited omerm and shapirac, and had a horribly geeky discussion. Much fun was had. shapirac mentioned that my PNS posts used to motivate her to work out, so mayhap I’ll resuscitate them. $DEITY knows I need the exercise.

When we got home Orna cooked an amazing dinner, and then I watched “quality TV”, aka The Wire. While watching (perhaps during the detective wake?) I realized that there was a way to eradicate one of the warts of the dma-mapping-ops patch.

The way I structured dma_xxx() is that they call a dma_mapping function if one exists, and otherwise call the default gart_xxx() function. This was done in order to keep the fast path fast (avoid a function pointer call). Unfortunately, for the nommu case, where no gart exists, this requires us to link in gart_xxx(), even though it’s never called. The solution is obvious, even if it did take me a week or so to come up with it – provide empty definitions of gart_xxx() if CONFIG_GART_IOMMU is not defined. While implementing it, I also discovered a couple of buglets – nommu_map_sg() and nommu_unmap_sg() were not getting called, and I erroneously removed a couple of EXPORT_SYMBOLS(). Fixed, tested, and released swiotlb-dma-mapping-ops-D1.

And that’s about it. How was your weekend, gentle reader?

Blog at