lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sat, 02 Feb 2008 18:37:08 +0900
From:	KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>
To:	Andi Kleen <andi@...stfloor.org>
Cc:	kosaki.motohiro@...fujitsu.com, linux-mm@...ck.org,
	linux-kernel@...r.kernel.org,
	Andrew Morton <akpm@...ux-foundation.org>,
	Christoph Lameter <clameter@....com>, Lee.Schermerhorn@...com
Subject: Re: [2.6.24-rc8-mm1][regression?] numactl --interleave=all doesn't works on memoryless node.

Hi Andi,

> > 3. 2.6.24-rc8-mm1 set_mempolicy(2) behavior
> >    3.1 check nodesubset(nodemask argument, node_states[N_HIGH_MEMORY])
> >        in mpol_check_policy()
> > 
> > 	-> check failed when memmoryless node exist.
> >            (i.e. node_states[N_HIGH_MEMORY] of my machine is 0xc)
> > 
> > 4. RHEL5.1 set_mempolicy(2) behavior
> >    4.1 check nodesubset(nodemask argument, node_online_map)
> >        in mpol_check_policy().
> > 
> > 	-> check success.
> > 
> > I don't know wrong either kernel or libnuma.
> 
> When the kernel behaviour changes and breaks user space then the kernel
> is usually wrong. Cc'ed Lee S. who maintains the kernel code now.

may be yes, may be no.

I have 1 simple question. 
Why do libnuma generate bitpattern of all bit on instead
check /sys/devices/system/node/has_high_memory nor 
check /sys/devices/system/node/online?

Do you know it?

and I made simple patch that has_high_memory exposed however CONFIG_HIGHMEM disabled.
if CONFIG_HIGHMEM disabled, the has_high_memory file show 
the same as the has_normal_memory.

may be, userland process should check has_high_memory file.

but, I am not confident.
Thanks.


- kosaki



Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>

---
 drivers/base/node.c |    7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

Index: b/drivers/base/node.c
===================================================================
--- a/drivers/base/node.c       2008-02-02 17:52:32.000000000 +0900
+++ b/drivers/base/node.c       2008-02-02 18:32:38.000000000 +0900
@@ -276,7 +276,6 @@ static SYSDEV_CLASS_ATTR(has_normal_memo
                                                                        NULL);
 static SYSDEV_CLASS_ATTR(has_cpu, 0444, print_nodes_has_cpu, NULL);

-#ifdef CONFIG_HIGHMEM
 static ssize_t print_nodes_has_high_memory(struct sysdev_class *class,
                                                 char *buf)
 {
@@ -285,15 +284,11 @@ static ssize_t print_nodes_has_high_memo

 static SYSDEV_CLASS_ATTR(has_high_memory, 0444, print_nodes_has_high_memory,
                                                                         NULL);
-#endif
-
 struct sysdev_class_attribute *node_state_attr[] = {
        &attr_possible,
        &attr_online,
        &attr_has_normal_memory,
-#ifdef CONFIG_HIGHMEM
        &attr_has_high_memory,
-#endif
        &attr_has_cpu,
 };

@@ -302,7 +297,7 @@ static int node_states_init(void)
        int i;
        int err = 0;

-       for (i = 0;  i < NR_NODE_STATES; i++) {
+       for (i = 0;  i < ARRAY_SIZE(node_state_attr); i++) {
                int ret;
                ret = sysdev_class_create_file(&node_class, node_state_attr[i]);
                if (!err)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ