The number of slots (possible holes) is 2*MAX_NR_PROC +4.

Assuming that each memory area (low, high, extended) has one chunk and
the non-swapable kernel data divides one chunk there would be the
possibility for four chunks and thus four holes at the end of each
chunk, resulting in +4. However, since there are up to eight chunks
allowed, this would dictate eight additional holes. This should not
happen since the bootloader is excluded from the initial memory parts
and the kernel and server should lie continuous in memory, resulting in
at most four chunks. The question is why there is the possibility for
eight chunks but the hole list can only, in a worst case scenario,
support four chunks, which is the maximum number of chunks if the
bootloader is well behaved.

Is this assumption correct, and if it is, why are there eight possible
chunks and not only four? Furthermore, if there are eight possible
chunks why only +4 in the slot list and not +8?