All of lore.kernel.org
 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 [PATCH] s390: update for altered page_state structure 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.