modules-common.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Common Primitives for DAMON Modules
  4. *
  5. * Author: SeongJae Park <[email protected]>
  6. */
  7. #include <linux/moduleparam.h>
  8. #define DEFINE_DAMON_MODULES_MON_ATTRS_PARAMS(attrs) \
  9. module_param_named(sample_interval, attrs.sample_interval, \
  10. ulong, 0600); \
  11. module_param_named(aggr_interval, attrs.aggr_interval, ulong, \
  12. 0600); \
  13. module_param_named(min_nr_regions, attrs.min_nr_regions, ulong, \
  14. 0600); \
  15. module_param_named(max_nr_regions, attrs.max_nr_regions, ulong, \
  16. 0600);
  17. #define DEFINE_DAMON_MODULES_DAMOS_TIME_QUOTA(quota) \
  18. module_param_named(quota_ms, quota.ms, ulong, 0600); \
  19. module_param_named(quota_reset_interval_ms, \
  20. quota.reset_interval, ulong, 0600);
  21. #define DEFINE_DAMON_MODULES_DAMOS_QUOTAS(quota) \
  22. DEFINE_DAMON_MODULES_DAMOS_TIME_QUOTA(quota) \
  23. module_param_named(quota_sz, quota.sz, ulong, 0600);
  24. #define DEFINE_DAMON_MODULES_WMARKS_PARAMS(wmarks) \
  25. module_param_named(wmarks_interval, wmarks.interval, ulong, \
  26. 0600); \
  27. module_param_named(wmarks_high, wmarks.high, ulong, 0600); \
  28. module_param_named(wmarks_mid, wmarks.mid, ulong, 0600); \
  29. module_param_named(wmarks_low, wmarks.low, ulong, 0600);
  30. #define DEFINE_DAMON_MODULES_DAMOS_STATS_PARAMS(stat, try_name, \
  31. succ_name, qt_exceed_name) \
  32. module_param_named(nr_##try_name, stat.nr_tried, ulong, 0400); \
  33. module_param_named(bytes_##try_name, stat.sz_tried, ulong, \
  34. 0400); \
  35. module_param_named(nr_##succ_name, stat.nr_applied, ulong, \
  36. 0400); \
  37. module_param_named(bytes_##succ_name, stat.sz_applied, ulong, \
  38. 0400); \
  39. module_param_named(nr_##qt_exceed_name, stat.qt_exceeds, ulong, \
  40. 0400);
  41. int damon_modules_new_paddr_ctx_target(struct damon_ctx **ctxp,
  42. struct damon_target **targetp);