- Feb 28, 2013
-
-
Guy Zana authored
-
Guy Zana authored
-
Guy Zana authored
-
Guy Zana authored
-
Guy Zana authored
-
Guy Zana authored
-
Guy Zana authored
-
Avi Kivity authored
We forgot to delete the object from the debugger interface when removing it from the program.
-
Avi Kivity authored
-
Dor Laor authored
* 'master' of github.com:cloudius-systems/osv: romfs: fix romfs_read() use uninitialized variable bsd: fix ratecheck() mempool: switch spinlocks to mutexes smp: drop debug message on smp bringup libc: make assert friendlier to panic conditions
-
Dor Laor authored
I can not see the packets yet, probably the header needs to be configured
-
Avi Kivity authored
found by mode=release
-
Avi Kivity authored
found by mode=release
-
Avi Kivity authored
Now working.
-
Avi Kivity authored
boost::format allocates, and we're not quite ready to schedule at this state; drop the debug message (unneeded anyhow).
-
Avi Kivity authored
Don't go though the stdio/vfs layer.
-
Dor Laor authored
* 'master' of github.com:cloudius-systems/osv: interrupt manager: simplify msi registration Conflicts: drivers/virtio-net.cc
-
Dor Laor authored
-
Dor Laor authored
it both when there is only 1-2 available discriptors and also to detect whether we have < half ring and should call re-fill
-
Avi Kivity authored
Instead of requiring the user to construct an msix entry -> thread binding map, they can now pass it directly: _msi.easy_register({ { 0, isr0 }, { 1, isr1 } });
-
Avi Kivity authored
IDT vectors are an extra level of indirection on the way to the msix_vector, which is what we really want. Convert assigned_vectors to be std::vector<msix_vector*>; this leads to a considerable simplification of the code.
-
Avi Kivity authored
Since the interrupt manager is now local to a device, we can initialize the device pointer once and remember it. This simplifies the API.
-
Avi Kivity authored
There's no reason for it.
-
Avi Kivity authored
There are actually no interactions between msix registrations of different drivers, so it doesn't help to use a global instance. We can simplify the interface by making it local, and also remove locking considerations.
-
Avi Kivity authored
These are subsumed into the driver constructor/destrutor.
-
Avi Kivity authored
Driver enumeration requires instantiating a driver even for devices which are not present; and if a device is present multiple times, we need to pre-create multiple driver instances, which is awkward. Further, driver life-cycle is complicated, with separation between instantiation and binding to a device. Switch (back) to the traditional device-driven model, where we iterate over all devices, try to find a matching driver factory, and when found, call it to instantiate the driver and bind to the device.
-
Avi Kivity authored
-
Avi Kivity authored
Don't do this in header files.
-
Avi Kivity authored
The main thread has a bogus wait_for_interrupts() which consumed wakeups, so the scheduler on the cpu running it could not schedule stuff. This manifested itself in lots of zombies from bsd callouts not getting reaped. Drop.
-
- Feb 27, 2013
-
-
Avi Kivity authored
If the user forgot to do this, do them a favour.
-
Avi Kivity authored
-
Avi Kivity authored
We also make the deleter configurable so we can use munmap() or similar to destroy the stack of payload threads.
-
Guy Zana authored
-
Avi Kivity authored
-
Guy Zana authored
-
Avi Kivity authored
Mutex is much better now and should be sufficient. To avoid overflowing sem_t, we have to use a pointer instead of embedding the mutex.
-
Avi Kivity authored
This reverts commit e917ab25. If we have an assert, it can break badly, as printf() inside the assert allocates. Will reinstate after adding emergency allocators.
-
Avi Kivity authored
Mutexes are now allocation free and thus safe for use within the allocator.
-