James E.J. Bottomley


James E.J. Bottomley

IBM Research


James Bottomley is a Distinguished Engineer at IBM Research where he
works on Cloud and Container technology. He is also Linux Kernel
maintainer of the SCSI subsystem. He has been a Director on the Board
of the Linux Foundation and Chair of its Technical Advisory Board. He
went to university at Cambridge for both his undergraduate and
doctoral degrees after which he joined AT&T Bell labs to work on
Distributed Lock Manager technology for clustering. In 2000 he helped
found SteelEye Technology, a High availability company for Linux and
Windows, becoming Vice President and CTO. He joined Novell in 2008 as
a Distinguished Engineer at Novell’s SUSE Labs, Parallels (later Odin)
in 2011 as CTO of Server Virtualization and IBM Research in 2016.

Proposals for this user

* Crypto System Integration for TPM 2.0

status and next steps for crypto system integration of TPM 2.0
Trusted Platform Module 09/08/2017
James E.J. Bottomley

* ktask: multithread cpu-intensive kernel work

As memory size and CPU counts increase on the largest systems, certain paths in the kernel that are single-threaded today are not scaling well and will become even bigger bottlenecks in the future. Examples include zeroing the biggest huge pages (e.g. 1G on x86), walking a process’s entire page table, and freeing large ranges of pages. These paths have been well optimized in one thread, so now it's a matter of scaling up the CPUs to match the amount of work to be done. One solution to this problem is ktask, a generic framework built on top of workqueues that takes care of splitting up a large task, starting a number of threads appropriate for the size of the task and the system, and load balancing the work between these threads. ktask uses internal limits to maintain an appropriate level of concurrency across the system. I want to get feedback on the overall approach and discuss similar scalability issues others are having in the kernel.
Unconference I 09/15/2017
James E.J. Bottomley

* Soft Affinity for Workloads

For weak performance isolation with multi-tenancy for some applications by allowing space partitioning of CPUs, there is a need for applications to specify soft affinity to some CPUs. So that one "group" does not interfere with other "groups", yet allow the group to occupy the full set of CPUs when no one else is using it. Currently, CFS allows time sharing of CPUs and sched_setaffinity allows for "hard" affinity (or restricting CPUs to a given mask or set). One solution could be to to add a new cpumask other than cpus_allowed (which is used for "hard" affinity). Let's say cpus_preferred. And allow an application to set a preference to a set of CPUs if it so desires.
Unconference II 09/15/2017
James E.J. Bottomley

* Support for adding DT based thermal zones at runtime

During a recent project I encountered an issue where I needed support for thermal zones that get instantiated by a devicetree overlay. In our specific case we had temperature sensors on a daughtercard that is swap-able. I haven't found a good solution on how to make the current of-thermal code work with runtime added thermal-zones, (assumption is all thermal zones present at boot) and was wondering if people have clever ideas.
Unconference I 09/15/2017
James E.J. Bottomley

* UID/GID shifting filesystem overlays

An update on shiftfs and the next steps for remapping overlay filesystems.
Containers 09/04/2017
James E.J. Bottomley