On 24.01.23 10:21, nb wrote:

@@ -2260,9 +2263,16 @@ static bool consume_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
      local_lock_irqsave(&memcg_stock.stock_lock, flags);
      stock = this_cpu_ptr(&memcg_stock);
-    if (memcg == stock->cached && stock->nr_pages >= nr_pages) {
-        stock->nr_pages -= nr_pages;
-        ret = true;
+    if (memcg == stock->cached) {
+        if (cache && stock->cache_nr_pages >= nr_pages) {
+            stock->cache_nr_pages -= nr_pages;
+            ret = true;
+        }
+
+        if (!cache && stock->nr_pages >= nr_pages) {
+            stock->nr_pages -= nr_pages;
+            ret = true;
+        }

nit: I find the original condition somewhat more readaable i.e having the memch stock->cached and cache_nr_pages check in the same if.

  if (memcg == stock->cached && stock->cache_nr_pages >= nr_pages) {
         if (cached)
             stock->cache_nr_pages -= nr_pages;
         else
             stock->nr_pages -= nr_pages;

         ret = true;
}


I've made it exactly like this initially but on a second look it doesn't check one of the conditions so i left it like this.
see cache_nr_pages vs nr_pages checks.

-    stock->nr_pages += nr_pages;
+    if (!cache)
+        stock->nr_pages += nr_pages;
+    else
+        stock->cache_nr_pages += nr_pages;
nit:

It reads more natural if we do if (cache) else  rathen with the negative condition.

afaik the first condition is the likely condition so i put it like this.
as for readability i do not find a major difference.


--
Regards,
Alexander Atanasov

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to