Skip to content
Snippets Groups Projects
  1. Aug 13, 2013
  2. Aug 12, 2013
  3. Aug 08, 2013
  4. Aug 06, 2013
  5. Aug 05, 2013
  6. Jul 31, 2013
    • Avi Kivity's avatar
      uma: cache initialized objects · 776221bd
      Avi Kivity authored
      The init and fini functions are fairly expensive (for networking).  Cache
      initialized objects in percpu pools to save this cost.
      
      The implementation is imperfect since if we're allocating on one cpu and
      freeing on another, reuse is low.  This can be improved in the future, or
      made unnecessary with VJ rings.
      
      Increases netperf from ~14.6Gbps to ~17.8Gbps on my machine.
      776221bd
    • Avi Kivity's avatar
      uma: honor M_ZERO · 88e3d43e
      Avi Kivity authored
      M_ZERO requests zeroing of the object regardless of any constructor; honor it.
      
      It works now because we bzero() all objects unconditionally, but we soon
      won't.
      88e3d43e
    • Avi Kivity's avatar
      uma: dynamically allocate zones · 5a6ca26e
      Avi Kivity authored
      We're going to make zones more expensive to allocate, so allocate only
      as many as we need.
      5a6ca26e
    • Avi Kivity's avatar
      bsd: switch uma to C++ · 13d28a21
      Avi Kivity authored
      Allows integrating with our mempools.
      13d28a21
    • Avi Kivity's avatar
      dhcp: remove M_ZERO from mbuf allocation · 4ac239de
      Avi Kivity authored
      M_ZERO requests zeroing of the entire mbuf, which clears the fields initialized
      by the init function.  It only works now because we don't honor M_ZERO.
      
      Remove M_ZERO and replace with bzero() for the packet data only.
      4ac239de
    • Glauber Costa's avatar
      msleep: respect BSD's PDROP · 322bd4fb
      Glauber Costa authored
      So after all the BSD code is not buggy, it is just their semantics that is
      slightly different from our version of mlock (Thanks Christoph). Whether or not
      we will drop the lock will be controlled by the value of the PDROP flag.
      
      Our msleep queues are protected by an internal lock which is not the same lock
      the user passed to the msleep call. Therefore, we can just a version of
      wait_until that does not take a lock argument, and do the locking manually
      ourselves. We may then lock it back or not, depending on the presence of the
      PDROP flag.
      322bd4fb
  7. Jul 30, 2013
  8. Jul 29, 2013
    • Glauber Costa's avatar
      BSDEDIT/blkfront: implement disk_alloc · 46b5ee0c
      Glauber Costa authored
      Disk alloc is a simple function that, well, allocates a disk. It is supposed
      to be provided by the device code, but for simplicity I am providing it in
      blkfront itself. We have no really better way to put it: device.c is quite generic,
      and we seem to have no disk specific file.
      
      If time brings us more users of such function, then I will move it somewhere else.
      46b5ee0c
    • Glauber Costa's avatar
      bsd: initialize taskqueue · c7f7d13b
      Glauber Costa authored
      Xenbus will use BSD taskqueues in the following way:
      
        taskqueue_enqueue(taskqueue_thread, &xbs->xbs_probe_children);
      
      taskqueue_thread seems to be the main bsd taskqueue, which wasn't ported in our
      initial port. So I am definiting it and initializing.
      
      It seems a bit odd to do this in net.cc, but this is where the rest of the BSD
      initialization lives anyway (maybe the filename should change?). Let me know if
      you feel strongly about it, and I will change. But for me it is okay for now.
      c7f7d13b
    • Glauber Costa's avatar
      bsd: block and network xen drivers · 71940e91
      Glauber Costa authored
      Those are the verbatim files, straight from BSD.
      71940e91
    • Glauber Costa's avatar
      bsd: pcpu stubs · 05f014f2
      Glauber Costa authored
      BSD register a structure with its per cpu data. We can do the same, using
      just the fields we need.
      05f014f2
    • Glauber Costa's avatar
      kthread: also allow for process creation · 4d2f9bfe
      Glauber Costa authored
      Xen BSD code will attempt to create processes to serve as deamons for xenstore.
      We can basically emulate this by creating threads.
      
      The only thing I am doing differently from the already existent thread creation
      layer that we have, is that callers will expect a struct proc to be returned. We
      had this as a stub, now I am creating a small struct with just the PID to serve
      as a return placeholder. The listener processes in xenstore never dies, so I am
      not implementing a deallocate routine for them
      4d2f9bfe
    • Glauber Costa's avatar
      trivial: fix bsd porting slock implementation · 024a1d9e
      Glauber Costa authored
      We take the write version instead of the read version when locking.
      Unlocking is fine
      024a1d9e
  9. Jul 28, 2013
Loading