x86/ioperm: Add bitmap sequence number
Add a globally unique sequence number which is incremented when ioperm() is changing the I/O bitmap of a task. Store the new sequence number in the io_bitmap structure and compare it with the sequence number of the I/O bitmap which was last loaded on a CPU. Only update the bitmap if the sequence is different. That should further reduce the overhead of I/O bitmap scheduling when there are only a few I/O bitmap users on the system. The 64bit sequence counter is sufficient. A wraparound of the sequence counter assuming an ioperm() call every nanosecond would require about 584 years of uptime. Suggested-by:Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by:
Thomas Gleixner <tglx@linutronix.de>
Showing
- arch/x86/include/asm/io_bitmap.h 1 addition, 0 deletionsarch/x86/include/asm/io_bitmap.h
- arch/x86/include/asm/processor.h 3 additions, 0 deletionsarch/x86/include/asm/processor.h
- arch/x86/kernel/cpu/common.c 1 addition, 0 deletionsarch/x86/kernel/cpu/common.c
- arch/x86/kernel/ioport.c 5 additions, 0 deletionsarch/x86/kernel/ioport.c
- arch/x86/kernel/process.c 28 additions, 10 deletionsarch/x86/kernel/process.c
Loading
Please register or sign in to comment