Re: [PATCH] mm/page_owner: Record timestamp and pid

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/12/20 8:14 PM, Andrew Morton wrote:
On Thu, 12 Nov 2020 20:41:06 +0200 Georgi Djakov <georgi.djakov@xxxxxxxxxx> wrote:

From: Liam Mark <lmark@xxxxxxxxxxxxxx>

Collect the time for each allocation recorded in page owner so that
allocation "surges" can be measured.

Record the pid for each allocation recorded in page owner so that
the source of allocation "surges" can be better identified.

Please provide a description of why this is considered useful.  What
has it been used for, what problems has it been used to solve?

Worth noting that on x86_64 it doubles the size of struct page_owner
from 16 bytes to 32, so it better be justified:

struct page_owner {
        short unsigned int         order;                /*     0     2 */
        short int                  last_migrate_reason;  /*     2     2 */
        gfp_t                      gfp_mask;             /*     4     4 */
        depot_stack_handle_t       handle;               /*     8     4 */
        depot_stack_handle_t       free_handle;          /*    12     4 */
        u64                        ts_nsec;              /*    16     8 */
        int                        pid;                  /*    24     4 */

        /* size: 32, cachelines: 1, members: 7 */
        /* padding: 4 */
        /* last cacheline: 32 bytes */
};


Are there userspace tools which aid in the processing of this new
information?

Can/should Documentation/vm/page_owner.rst be updated?

--- a/mm/page_owner.c
+++ b/mm/page_owner.c
@@ -10,6 +10,7 @@
 #include <linux/migrate.h>
 #include <linux/stackdepot.h>
 #include <linux/seq_file.h>
+#include <linux/sched/clock.h>
#include "internal.h" @@ -25,6 +26,8 @@ struct page_owner {
 	gfp_t gfp_mask;
 	depot_stack_handle_t handle;
 	depot_stack_handle_t free_handle;
+	u64 ts_nsec;
+	int pid;

pid_t would be nicer?








[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux