LSKQ(1) General Commands Manual LSKQ(1)

lskqdisplay process kqueue state

lskq [-vhe] [-p <pid> | -a]

The lskq command enumerates kqueues and registered kevents of running processes.

<pid>
Show kqueues of process <pid>.
Show kqueues for all running processes. Requires root.
Verbose: show opaque user data and filter-specific extension fields.
Ignore empty kqueues.
Print fields in raw hex.
Show help and exit.

lskq prints one line of output for each registered kevent, consisting of process, kqueue, and kevent information. For kqueues with no registered kevents, a single line is output with an ident of `-'. See kevent(2) for field semantics. The output columns are:

command
shortened process name.
pid
process identifier.
kq
file descriptor corresponding to kqueue, or ``wq'' for the special workq kqueue.
kqst
kqueue status bitmask.
kqueue is in a () wait set (KQ_SLEEP).
kqueue is in a () wait set (KQ_SEL).
Type of kevents on this kqueue: KEV32, KEV64, or KEV_QOS.
ident
kevent identifier. The meaning depends on the kevent filter specified. Where possible, lskq prints both numeric and symbolic names.
filter
kevent filter type (EVFILT_*).
fdtype
file descriptor type, for filters operating on file descriptors.
fflags
kevent filter flags bitmask. The meaning of each field depends on the filter type.

EVFILT_READ:
 
NOTE_LOWAT

EVFILT_MACHPORT:
 
MACH_RCV_MSG

EVFILT_VNODE:
 
NOTE_DELETE
NOTE_WRITE
NOTE_EXTEND
NOTE_ATTRIB
NOTE_LINK
NOTE_RENAME
NOTE_REVOKE
NOTE_FUNLOCK

EVFILT_PROC:
 
NOTE_EXIT
NOTE_EXITSTATUS
NOTE_EXIT_DETAIL
NOTE_FORK
NOTE_EXEC
NOTE_SIGNAL
NOTE_REAP

EVFILT_TIMER:
 
s u n m
NOTE_SECONDS, NOTE_USECONDS, NOTE_NSECONDS, NOTE_MACHTIME
a A
NOTE_ABSOLUTE, NOTE_MACH_CONTINUOUS_TIME
NOTE_CRITICAL
NOTE_BACKGROUND
NOTE_LEEWAY

EVFILT_USER:
 
NOTE_TRIGGER
NOTE_FFAND
NOTE_FFOR

EVFILT_WORKLOOP:
 
t w i
NOTE_WL_THREAD_REQUEST, NOTE_WL_SYNC_WAIT, NOTE_WL_SYNC_IPC
NOTE_WL_SYNC_WAKE
NOTE_WL_UPDATE_QOS
NOTE_WL_DISCOVER_OWNER
NOTE_WL_IGNORE_ESTALE
POLICY_RR
POLICY_FIFO
Priority Configured on workloop
flags
kevent generic flags bitmask.
EV_ADD
EV_ENABLE
EV_DISABLE
EV_DELETE

EV_RECEIPT
EV_ONESHOT
EV_CLEAR
EV_DISPATCH

EV_UDATA_SPECIFIC
EV_FLAG0 (EV_POLL)
EV_FLAG1 (EV_OOBAND)
EV_EOF
EV_ERROR
evst
kevent status bitmask.
KN_ACTIVE (event has triggered)
KN_QUEUED (event has been added to the active list)
KN_DISABLED (knote is disabled)
KN_SUPPRESSED (event delivery is in flight)
KN_STAYACTIVE (event is marked as always-enqueued on the active list)

KN_DROPPING (knote is about to be dropped)
KN_LOCKED (knote is locked)
KN_POSTING (knote is being posted)
KN_MERGE_QOS (knote is in override saturating mode)

KN_DEFERDELETE (knote is waiting for deferred-delete ack)
KN_REQVANISH
KN_VANISHED
qos
The QoS requested for the knote.
data
Filter-specific data.

If the -v (verbose) option is specified, the opaque user-data field and further filter-specific extension fields are printed in raw hexadecimal.

The output of lskq is not an atomic snapshot of system state. In cases where lskq is able to detect an inconsistency, a warning will be printed.

Not all flags are symbolicated. Use -r (raw mode) to inspect additional flags.

ddt(1), lsmp(1), kevent(2), kqueue(2), lsof(8)

April 20, 2015 macOS