History log of /titanic_41/usr/src/uts/common/fs/zev/zev.c (Results 1 – 25 of 40)
Revision Date Author Comments
# 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


12