On 07/07/2015 08:19 AM, Peter Krempa wrote:
On Mon, Jul 06, 2015 at 13:08:28 -0400, John Ferlan wrote:
> v1 here:
>
http://www.redhat.com/archives/libvir-list/2015-June/msg00814.html
>
> Changes since v1:
> - Add doc patch 1 to indicate that this feature may only be supported by
> certain kernels
> - Adjust former patch 1 to add call to qemuIsSharedHostdev from
> qemuSetUnprivSGIO
> - Insert patches 7 & 8 which essentially refactor qemuSetUnprivSGIO a bit.
> There should be no functional difference
> - Patch 9 is now a much slimmer former patch 6
>
> The end result is that 'generically speaking' if any kernel supports
> setting the unprivileged SGIO feature, then these patches provide
> the capability to do so.
>
> Although as pointed out in the review of v1 only one specific downstream
> kernel supports the feature, that doesn't mean other distros couldn't add
> support in the same manner. So rather than just remove all traces from
> libvirt completely, it seems it would be reasonable to keep the checks
> in place and if a kernel then decides to add support this code exists
> to assist.
Well, I'm not going to insist that we revert the existing code since
it's possible that the feature might actually make it into the upstream
linux kernel eventually.
Until it's upstream I don't think though we should add support (even if
we document that it will not work) for stuff that is not upstream since
the design of the upstream interface might then differ, which will make
us carry two implementations.
This series merely addresses adding back the hostdev changes using the
same processing as <disk> except for where the sgio bit is stored and
handled for hostdev. The unpriv_sgio for <disk> is already in libvirt as
of 1.0.2 and if I read between the lines correctly, that's not in the
upstream kernel either, but I cannot state that for sure.
If unpriv_sgio doesn't exist upstream for <disk> and could cause us to
carry two implementations if done differently, then I don't see how
having hostdev have the same implementation as disk is problematic. Or
am I misreading what you wrote? My assumption being that whatever is
done upstream would use the same mechanism for disk and hostdev as it
does "now" for the downstream implementation.
Since there's already existing code that touches the kernel interface
for unpriv_sgio, actually exposing the support will then require us to
carry that part instead of changing it to the actual upstream impl.
If a "hypothetical" downstream distro would add kernel patches to add the
feature, they might as well as carry the downstream libvirt patches too.
NACK series until upstream kernel support is present. (Some of the
cleanup patches may be worth taking until the kernel issue gets settled
though.)
Right w/r/t taking some of these patches... This is something I pointed
out in the original series, but since this is a new series here's my
thoughts...
Patch 1 changes to entirely remove the text about sgio in hostdev.
Patch 2 seems OK with a slight text adjustment on the commit message
Patches 3-8 adjust the shared hostdev logic regardless of unpriv sgio
Patches 9 & 10 could then become downstream only, at least for now. Much
smaller subset of changes than the original add/revert (and there's I
think 2 less bugs from what was there, plus the extra one you found in
patch 7 that would have been cleaned up by patch 9 - although I'll
contend that's an ordering thing - I did 9 first and then thought that 7
& 8 would things more logical).
Since there are ACK's for 2 and 8, I can assume to a degree you agree
with my thoughts through patch 8. There's no explicit ACK's on other
patches, although there is an explicit NACK to the whole series, so I'll
wait before doing anything with this to see your and others thoughts
regarding what is or should be applicable. I've already adjusted in my
local branch patch 2, 7, & 8.
Tks -
John