> > > /sys/kernel/mm/ksm/run > > > > > > run: write 0 to disable ksm, read 0 while ksm is disabled. > > > > > > - write 1 to run ksm, read 1 while ksm is running. > > > - write 2 to disable ksm and unmerge all its pages. > > > > The document is out of date then as it does not mention 'offline'. > > The offline mode cannot be set externally. > > In run_store() > if (flags > KSM_RUN_UNMERGE) > return -EINVAL; However, I see that KSM_RUN_OFFLINE is visible via run_show(), so yes doc should be updated. And, yes it becomes a bitfield from the user perspective. > > > > > Also, why does the call to kstrtouint() specify base 10? If it is a > > bitmap, then permitting 0x [1] is more natural. I would expect to see > > base 0 there. > > Users can only write 0, 1, or 2, it is not a bitmap from the user's > perspective as the user cannot write: '3' . But, I think it is > somewhat weird that ksm_run is used as a bitmap internally with > KSM_RUN_OFFLINE = 4. > > Imo, KSM_RUN_OFFLINE should be placed in a separate boolean from "ksm_run". > > > > > [1] or even 0b, although I see that _parse_integer_fixup_radix does not > > support the 0b notation.