[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