[libvirt] [PATCHv2] Enable tuning of qemu network tap device "sndbuf" size
Laine Stump
laine at laine.org
Fri Jan 14 19:47:28 UTC 2011
On 01/14/2011 02:21 PM, Eric Blake wrote:
> On 01/14/2011 10:35 AM, Laine Stump wrote:
>> The sndbuf value is put inside a<tune> element of each<interface> in
>> the domain. The intent is that further tunable settings will also be
>> placed inside this element.
>>
>> <interface type='network'>
>> ...
>> <tune>
>> <sndbuf>0</sndbuf>
>> ...
>> </tune>
>> </interface>
>> ---
>>
>> Changes from V1:
>>
>> sndbuf_specified is now a bool rather than an int bitfield.
>>
>> sndbuf is now unsigned long. Made possible by eblake's patch adding new
>> virXPath* and virStrToLong_* functions.
> Glad to hear it :)
>
>> + if (virXPathULong("string(./tune/sndbuf)", ctxt,&def->tune.sndbuf)>= 0) {
>> + def->tune.sndbuf_specified = true;
>> + }
> This silently ignores invalid values, such as<sndbuf>-1</sndbuf>,
> rather than flagging them as errors. Is that intentional?
>
> ACK, with that nit addressed.
I squashed in the following diff and pushed (I'm sure this diff will be
mangled by Thunderbird, but it's for informational purposes anyway):
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 5b1516d..4a7f879 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -2305,6 +2305,7 @@ virDomainNetDefParseXML(virCapsPtr caps,
virVirtualPortProfileParams virtPort;
bool virtPortParsed = false;
xmlNodePtr oldnode = ctxt->node;
+ int ret;
if (VIR_ALLOC(def) < 0) {
virReportOOMError();
@@ -2600,8 +2601,13 @@ virDomainNetDefParseXML(virCapsPtr caps,
}
}
- if (virXPathULong("string(./tune/sndbuf)", ctxt, &def->tune.sndbuf)
>= 0) {
+ ret = virXPathULong("string(./tune/sndbuf)", ctxt, &def->tune.sndbuf);
+ if (ret >= 0) {
def->tune.sndbuf_specified = true;
+ } else if (ret == -2) {
+ virDomainReportError(VIR_ERR_XML_ERROR, "%s",
+ _("sndbuf must be a positive integer"));
+ goto error;
}
cleanup:
More information about the libvir-list
mailing list