- Oct 02, 2024
-
-
Vasco Guita authored
-
- Sep 23, 2024
-
-
Vasco Guita authored
-
- Jul 24, 2024
-
-
Vasco Guita authored
-
- Mar 25, 2024
-
- Sep 15, 2023
-
-
A. Hahn authored
-
Alessandro Rubini authored
If user spaces calls read(2), the vfs_read() in fs/read_write.c does not create an iov array any more since v5.19-10288-g3e20a751aff0. That commit does as follows: - struct iovec iov = { .iov_base = buf, .iov_len = len }; - iov_iter_init(&iter, READ, &iov, 1, len); + iov_iter_ubuf(&iter, READ, buf, len); as a resuly, our code that checks iter->iov->nr_segs sees 0 segments, understands we have no buffer, and returns 0. Same for write(2). This is a hack, as I don'w know what happens if the user space uses readv/writev. Actually, I'd better have a simple fops->read() and fops->write() in the driver, but I'm sure I lack a lot of background knowledge here. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
- Jun 16, 2023
-
-
After handle_write_cfg(, WBA_ERR, ) the function wakes a worker which will talk to the hardware and process the MSI. This worker can be delayed if the system is busy leading to latency spikes during the communication. The detour via the worker can be avoided and the request can be completed within the write request. Doing it within handle_write_cfg() could be possible because wishbone_process_msi() is using its own buffer for communication and only the locking is in the way. It looks safer and simpler to simply wait until all locks are released and process the MSI afterwards if needed. This also mimics the previous workflow except that there is less delay now. Don't schedule the worker from handle_write_cfg() but process the MSI request directly from the write callback if needed. Signed-off-by:
Sebastian Andrzej Siewior <bigeasy@linutronix.de> Reviewed-by:
Kurt Kanzenbach <kurt@linutronix.de>
-
The interrupt service routine schedules a worker in order to perform the main task including signaling userspace. This can lead to increased latency since the worke is not sychronized with the interrupt handler and be invoked "later" depending on the load on the system. This can be avoided by using a threaded interrupt and invoking the work directly in the threaded interrupt. There are still other places which invoke wishbone_slave_ready() (and use the worker) in order to judge if this is sane to do or not. Use threaded interrupts and perform the work in the threaded interrupt. Signed-off-by:
Sebastian Andrzej Siewior <bigeasy@linutronix.de> Reviewed-by:
Kurt Kanzenbach <kurt@linutronix.de>
-
- Nov 10, 2022
- Mar 17, 2022
- Nov 03, 2021
-
-
Juan David González Cobas authored
sdbfs: relicense lib to LGPL v2.1 See merge request !1
-
- Nov 01, 2021
-
-
Benoit Rat authored
The userspace and kernel binaries are kept as GPL v2 but the library has been relicensed as LGPL v2.1 in order to allow it to be linked to proprietary software. The permission to relicense the files has been approved by CERN in 2018 and then in 2021 (and also by its main author).
-
- Nov 06, 2020
- Sep 15, 2020
-
-
A. Hahn authored
-
- Mar 16, 2020
-
-
A. Hahn authored
-
- Feb 21, 2020
- Aug 09, 2019
-
-
Dimitris Lampridis authored
-
- Mar 05, 2019
-
-
A. Hahn authored
-
- Feb 25, 2019
-
-
A. Hahn authored
-
- Jun 08, 2018
-
-
A. Hahn authored
-
- Mar 12, 2018
-
-
A. Hahn authored
-
- Jan 15, 2018
-
-
Michael Reese authored
-
- Feb 09, 2017
-
-
Cesar Prados authored
-
-
- Aug 01, 2016
-
-
Cesar Prados authored
-
- Jul 28, 2016
-
-
Cesar Prados authored
-
- Jul 27, 2016
-
-
Cesar Prados authored
-
- Jul 18, 2016
-
-
Cesar Prados authored
-
- Apr 29, 2016
-
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
-
- Apr 28, 2016
-
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
This avoids sleeping in interrupt handlers.
-
Wesley W. Terpstra authored
-