mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Gerald Schaefer <gerald.schaefer@gmx.net>
To: linux-kernel@vger.kernel.org
Cc: olh@suse.de, arnd@arndb.de, akpm@osdl.org, schwidefsky@de.ibm.com
Subject: Re: [PATCH] s390: update for altered page_state structure
Date: Mon, 15 Mar 2004 19:02:45 +0100	[thread overview]
Message-ID: <200403151902.45925.gerald.schaefer@gmx.net> (raw)

On Sunday 14 March 2004 11:46, Arnd wrote:

> Sorry, this does not look like the right fix. The structure is
> effectively ABI, because it is accessed as binary data by the
> VM hypervisor. If changes to it can't be avoided, the structure
> version needs to be changed as well and all documentation and
> VM applications using it must be updated.
> 
> In this specific case, it should be simple enough to just leave
> the pgalloc field in place and write the sum of the real kernel
> values (high+normal+dma) to it.
> 
> Gerald, can you please look into this?

This patch fixes the problems introduced by Olaf's patch, please apply.
I have added some comments to the data gathering modules to avoid
future confusion and summarized the pgalloc counts as described above.

===== arch/s390/appldata/appldata_mem.c 1.2 vs edited =====
--- 1.2/arch/s390/appldata/appldata_mem.c	Sun Mar 14 20:17:11 2004
+++ edited/arch/s390/appldata/appldata_mem.c	Mon Mar 15 15:35:23 2004
@@ -27,6 +27,15 @@
 
 /*
  * Memory data
+ *
+ * This is accessed as binary data by z/VM. If changes to it can't be avoided,
+ * the structure version (product ID, see appldata_base.c) needs to be changed
+ * as well and all documentation and z/VM applications using it must be
+ * updated.
+ * 
+ * The record layout is documented in the Linux for zSeries Device Drivers
+ * book:
+ * http://oss.software.ibm.com/developerworks/opensource/linux390/index.shtml
  */
 struct appldata_mem_data {
 	u64 timestamp;
@@ -54,9 +63,7 @@
 	u64 freeswap;		/* free swap space */
 
 // New in 2.6 -->
-	u64 pgalloc_high;	/* page allocations */
-	u64 pgalloc_normal;
-	u64 pgalloc_dma;
+	u64 pgalloc;		/* page allocations */
 	u64 pgfault;		/* page faults (major+minor) */
 	u64 pgmajfault;		/* page faults (major only) */
 // <-- New in 2.6
@@ -71,9 +78,7 @@
 	P_DEBUG("pgpgout    = %8lu KB\n", mem_data->pgpgout);
 	P_DEBUG("pswpin     = %8lu Pages\n", mem_data->pswpin);
 	P_DEBUG("pswpout    = %8lu Pages\n", mem_data->pswpout);
-	P_DEBUG("pgalloc_high   = %8lu \n", mem_data->pgalloc_high);
-	P_DEBUG("pgalloc_normal = %8lu \n", mem_data->pgalloc_normal);
-	P_DEBUG("pgalloc_dma    = %8lu \n", mem_data->pgalloc_dma);
+	P_DEBUG("pgalloc    = %8lu \n", mem_data->pgalloc);
 	P_DEBUG("pgfault    = %8lu \n", mem_data->pgfault);
 	P_DEBUG("pgmajfault = %8lu \n", mem_data->pgmajfault);
 	P_DEBUG("sharedram  = %8lu KB\n", mem_data->sharedram);
@@ -109,14 +114,10 @@
 	mem_data->pgpgout    = ps.pgpgout >> 1;
 	mem_data->pswpin     = ps.pswpin;
 	mem_data->pswpout    = ps.pswpout;
-	mem_data->pgalloc_high   = ps.pgalloc_high;
-	mem_data->pgalloc_normal = ps.pgalloc_normal;
-	mem_data->pgalloc_dma    = ps.pgalloc_dma;
+	mem_data->pgalloc    = ps.pgalloc_high + ps.pgalloc_normal +
+			       ps.pgalloc_dma;
 	mem_data->pgfault    = ps.pgfault;
 	mem_data->pgmajfault = ps.pgmajfault;
-
-P_DEBUG("pgalloc_high = %lu, pgalloc_normal = %lu, pgalloc_dma = %lu, pgfree = %lu\n",
-	ps.pgalloc_high, ps.pgalloc_normal, ps.pgalloc_dma, ps.pgfree);
 
 	si_meminfo(&val);
 	mem_data->sharedram = val.sharedram;
===== arch/s390/appldata/appldata_net_sum.c 1.1 vs edited =====
--- 1.1/arch/s390/appldata/appldata_net_sum.c	Thu Feb 26 12:21:55 2004
+++ edited/arch/s390/appldata/appldata_net_sum.c	Mon Mar 15 15:35:59 2004
@@ -26,6 +26,14 @@
 
 /*
  * Network data
+ *
+ * This is accessed as binary data by z/VM. If changes to it can't be avoided,
+ * the structure version (product ID, see appldata_base.c) needs to be changed
+ * as well and all documentation and z/VM applications using it must be updated.
+ * 
+ * The record layout is documented in the Linux for zSeries Device Drivers
+ * book:
+ * http://oss.software.ibm.com/developerworks/opensource/linux390/index.shtml
  */
 struct appldata_net_sum_data {
 	u64 timestamp;
===== arch/s390/appldata/appldata_os.c 1.1 vs edited =====
--- 1.1/arch/s390/appldata/appldata_os.c	Thu Feb 26 12:21:55 2004
+++ edited/arch/s390/appldata/appldata_os.c	Mon Mar 15 15:35:04 2004
@@ -28,6 +28,15 @@
 
 /*
  * OS data
+ *
+ * This is accessed as binary data by z/VM. If changes to it can't be avoided,
+ * the structure version (product ID, see appldata_base.c) needs to be changed
+ * as well and all documentation and z/VM applications using it must be
+ * updated.
+ * 
+ * The record layout is documented in the Linux for zSeries Device Drivers
+ * book:
+ * http://oss.software.ibm.com/developerworks/opensource/linux390/index.shtml
  */
 struct appldata_os_per_cpu {
 	u32 per_cpu_user;	/* timer ticks spent in user mode   */
===== include/linux/page-flags.h 1.45 vs edited =====
--- 1.45/include/linux/page-flags.h	Sun Mar 14 20:17:11 2004
+++ edited/include/linux/page-flags.h	Mon Mar 15 13:10:26 2004
@@ -80,9 +80,6 @@
 /*
  * Global page accounting.  One instance per CPU.  Only unsigned longs are
  * allowed.
- *
- * NOTE: if this structure is changed then mm/page_alloc.c and
- * arch/s390/appldata/appldata_mem.c must be updated accordingly
  */
 struct page_state {
 	unsigned long nr_dirty;		/* Dirty writeable pages */

             reply	other threads:[~2004-03-15 18:03 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-03-15 18:02 Gerald Schaefer [this message]
  -- strict thread matches above, loose matches on Subject: below --
2004-03-14 22:44 Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200403151902.45925.gerald.schaefer@gmx.net \
    --to=gerald.schaefer@gmx.net \
    --cc=akpm@osdl.org \
    --cc=arnd@arndb.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=olh@suse.de \
    --cc=schwidefsky@de.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®