W dniu 25.10.2024 o 22:14, Dmitry Torokhov pisze: > On my device reading entirety of /sys/devices/pnp0/00:03/cmos_nvram0/nvmem > takes about 9 msec during which time interrupts are off on the CPU that > does the read and the thread that performs the read can not be migrated > or preempted by another higher priority thread (RT or not). > > Allow readers and writers be preempted by taking and releasing rtc_lock > spinlock for each individual byte read or written rather than once per > read/write request. > > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> Reviewed-by: Mateusz Jończyk <mat.jonczyk@xxxxx> FWIW, there is a similar latency problem in hpet_rtc_interrupt() in arch/x86/kernel/hpet.c as mc146818_get_time() can sleep for up to 10ms. It should be possible to avoid using full mc146818_get_time() there and implement only what's needed (including aborting early if RTC_UIP is set etc.). Greetings, Mateusz