#
4ab1323a |
| 23-Nov-2015 |
Simon Klinkert <klinkert@webgods.de> |
further lint fixes
|
#
85dcc477 |
| 10-Jul-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: bugfix: device nodes remained for delete queues
devfs_clean() is used to remove old device nodes. It requires a dev_info_t as a starting point. The zev instance's dev_info_t was used but didn
zev: bugfix: device nodes remained for delete queues
devfs_clean() is used to remove old device nodes. It requires a dev_info_t as a starting point. The zev instance's dev_info_t was used but didn't work. ddi_root_node() is now used, which returns top_devinfo.
show more ...
|
#
e61588a3 |
| 08-Jul-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: fix: tmpqueues should be initially empty
When creating temporary queues dynamically, (by opening the tmpqueue device) the resulting queue should start empty and not contain any old events.
|
#
441d1132 |
| 08-Jul-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: dynamically create temporary queues
The zev driver can now create new ephemeral queues in the fly.
When the tmpqueue device is opened, a new non-persistent queue is created and the userland ca
zev: dynamically create temporary queues
The zev driver can now create new ephemeral queues in the fly.
When the tmpqueue device is opened, a new non-persistent queue is created and the userland can immediatly use it as though the tmpqueue device itself was a valid queue device. As soon as the device is closed the temporary queue is removed.
This should make using tmp queues easier. It is no longer necessary to find or generate a free queue name, and tmp queues opened via the tmpqueue device can not be orphaned - they are already opened when they are created. Using the old method a userland process might crash or forget about a tmp queue it has created - which would then remain in the queue list indefinitly.
show more ...
|
#
c9ca1789 |
| 07-Jul-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: bugfix: device files are removed correctly
When a queue is removed the corresponding /devices special files were not correctly removed aswell. To achieve that, it is necessary to call devfs_cl
zev: bugfix: device files are removed correctly
When a queue is removed the corresponding /devices special files were not correctly removed aswell. To achieve that, it is necessary to call devfs_clean() using the DV_CLEAN_FORCE flag. This is now done and the device files dissapear as one would expect.
show more ...
|
#
2999edec |
| 06-Jul-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: bugfix: missing mutex protection
In certain circuumstances zev_hold_queue() was called without acquiring the necessary mutex first. I have not found any code in zevadm or beaverd that might ac
zev: bugfix: missing mutex protection
In certain circuumstances zev_hold_queue() was called without acquiring the necessary mutex first. I have not found any code in zevadm or beaverd that might actually trigger this bug, though.
show more ...
|
#
b0e9cea3 |
| 30-Jun-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: bugfix: some queues were blocking too early
Under certain conditions, zev queues would block too soon or for the wrong queues: if the max queue limit was reached and there was a queue with the
zev: bugfix: some queues were blocking too early
Under certain conditions, zev queues would block too soon or for the wrong queues: if the max queue limit was reached and there was a queue with the block flag, zev would block new messages, even if the blocking queue wasn't full.
show more ...
|
#
62b114c4 |
| 29-Jun-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: use devfs_cleanup to remove unused entries
Old device files under /devices/pseudo are no longer cleaned up when the queue is no longer used. Calling devfs_cleanup() was suggested to trigger th
zev: use devfs_cleanup to remove unused entries
Old device files under /devices/pseudo are no longer cleaned up when the queue is no longer used. Calling devfs_cleanup() was suggested to trigger this.
show more ...
|
#
87604a72 |
| 29-Jun-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: bugfix: fix modinfo version string
The modinfo string has a marco to show the zev modules version information. That macro was not correctly expanded and the macro's name was shown instead.
|
#
f63c8e09 |
| 24-Jun-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: new ioctl() to query ABI version
A new ioctl() has been added to query the module for it's version numbers. These are supposed to give an indication of which behaviour and which feature set ca
zev: new ioctl() to query ABI version
A new ioctl() has been added to query the module for it's version numbers. These are supposed to give an indication of which behaviour and which feature set can be expected to work.
show more ...
|
#
090d3ec7 |
| 23-Jun-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: bugfix: zev_update_blockflag() without mutex
The function zev_update_blockflag() requires callers to hold the zev_mutex, but zev_queue_new() called it without holding zev_mutex.
|
#
f13bc839 |
| 11-Feb-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: filter events outside of HiDrive spaces
To reduce load on the beaver daemon we do not report events that are not from a production HiDrive filesystem containing customer data, recognized by the
zev: filter events outside of HiDrive spaces
To reduce load on the beaver daemon we do not report events that are not from a production HiDrive filesystem containing customer data, recognized by the string "_root" anyhere in the dataset name.
show more ...
|
#
ff713486 |
| 05-Aug-2014 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: bugfix: blocked at global queue size limit
Even if all queues where non-blocking, reaching the global queue size limit made the system block ZFS calls.
Now, old messages are discarded until th
zev: bugfix: blocked at global queue size limit
Even if all queues where non-blocking, reaching the global queue size limit made the system block ZFS calls.
Now, old messages are discarded until the new one fits into all queues. A small optimization was added so we don't have to iterate over all queues to find out whether we have any blocking queues.
show more ...
|
#
d114cf32 |
| 05-Aug-2014 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: bugfix: lowering global queue size limit
When the global queue size limit was lowered, the individual queue size maxima where not lowered accordingly.
|
#
6970b7d9 |
| 05-Aug-2014 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: option to create empty queues
New zev queues where filled with as many events as would fit from the global event backlog. Now a flag can be set to skip this step. The new queue will then be em
zev: option to create empty queues
New zev queues where filled with as many events as would fit from the global event backlog. Now a flag can be set to skip this step. The new queue will then be empty upon creation and will only receive events newer than the queue itself.
show more ...
|
#
57800375 |
| 11-Jul-2014 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: bugfix: trim queue after reading messages
The read() handler did not shorten the message queue after a successfull read, relying on other places to do that. But when the queue is full read() is
zev: bugfix: trim queue after reading messages
The read() handler did not shorten the message queue after a successfull read, relying on other places to do that. But when the queue is full read() is the only place that can still perform work, every other thread blocks until the queue is smaller. So read() also needs to trim the queue down immediately.
show more ...
|
#
6b4c2eb9 |
| 22-May-2014 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: ioctl() to get signatures for an open file
There's a new ioctl() ZEV_IOC_GET_FILE_SIGNATURES to get beaver signatures for a data range in an open file. The provided buffer has to be large enou
zev: ioctl() to get signatures for an open file
There's a new ioctl() ZEV_IOC_GET_FILE_SIGNATURES to get beaver signatures for a data range in an open file. The provided buffer has to be large enough to hold the parameters and the signatures.
zevadm can display a file's signatures using 'zevadm -c <filename>'
show more ...
|
#
d8e62bab |
| 08-May-2014 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: calculate beaver-compatible checksums of changes
Ranges required to calculate the checksums will be range locked before the zev callbacks are called. Checksums are calculated in the zev module
zev: calculate beaver-compatible checksums of changes
Ranges required to calculate the checksums will be range locked before the zev callbacks are called. Checksums are calculated in the zev module and reported to userland. Checksums of all-zeroes blocks are omitted. Userland is expected to infer that the block must have bee all-zeroes.
An internal cache is implemented to avoid re-reading the same data over and over again.
show more ...
|
#
e4ea145c |
| 08-May-2014 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: changes for #1891 review (multiplayer)
Review feedback addressed in this commit:
- remove avl, replace with array - read() can block (but can be interrupted by signals) - style changes - q
zev: changes for #1891 review (multiplayer)
Review feedback addressed in this commit:
- remove avl, replace with array - read() can block (but can be interrupted by signals) - style changes - queue threshold can be set to 0 bytes (no delay) - FIND_QUEUE macro replaced by function - new mutex to avoid races when queues are full - zevadm can be told to poll events from a specified queue - zevadm can create blocking queues
additional changes:
- mark events are delivered without delay
show more ...
|
#
bc16f320 |
| 19-Mar-2014 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: multi-queue support
|
#
a27b019e |
| 03-Feb-2014 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: remove unnecessary zap_lookup, display ctime
|
#
7a84701f |
| 27-Jan-2014 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: new ioctl (get_gen) and various fixes
|
#
ff33ba5a |
| 15-Jan-2014 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: small fix for zev_detach() return value
|
#
b36b6198 |
| 09-Dec-2013 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: bugfix - zev_detach return value when busy
zev_detach() returned EBUSY when the module was in use, but should return DDI_FAILURE.
EBUSY leads to the titanic_7 kernel trying to unload the modul
zev: bugfix - zev_detach return value when busy
zev_detach() returned EBUSY when the module was in use, but should return DDI_FAILURE.
EBUSY leads to the titanic_7 kernel trying to unload the module, which will fail in _fini(), and also break functionality because of the partial execution of _fini().
show more ...
|
#
74cdfce6 |
| 19-Nov-2013 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: fix lint and build warnings
|