Re: [PATCH v2 1/7] swap: Add comments to lock_cluster_or_swap_info()

From: Dave Hansen
Date: Tue Jul 17 2018 - 14:27:32 EST


On 07/16/2018 05:55 PM, Huang, Ying wrote:
> +/*
> + * For non-HDD swap devices, the fine grained cluster lock is used to
> + * protect si->swap_map. But cluster and cluster locks isn't
> + * available for HDD, so coarse grained si->lock will be used instead
> + * for that.
> + */
> static inline struct swap_cluster_info *lock_cluster_or_swap_info(
> struct swap_info_struct *si,
> unsigned long offset)

This nomenclature is not consistent with the rest of the file. We call
a "non-HDD" device an "ssd" absolutely everywhere else in the file. Why
are you calling it a non-HDD here? (fwiw, HDD _barely_ hits my acronym
cache anyway).

How about this?

/*
* Determine the locking method in use for this device. Return
* swap_cluster_info if SSD-style cluster-based locking is in place.
*/
static inline struct swap_cluster_info *lock_cluster_or_swap_info(
struct swap_info_struct *si,
unsigned long offset)
{
struct swap_cluster_info *ci;

/* Try to use fine-grained SSD-style locking if available: */
ci = lock_cluster(si, offset);

/* Otherwise, fall back to traditional, coarse locking: */
if (!ci)
spin_lock(&si->lock);

return ci;
}

Which reminds me? Why do we even bother having two locking models?