OmegaPhil:
> It has now been some time since I got the kernel memory allocation
> failures, so clearly the libau hack has fixed it - thanks.

Glad to hear that!
(Honestly speaking, I totally forgot about this issue)


> In the manpage, please can you change 'If you have a directory which has
> millions of files' to say 'tens of thousands of files', and it would be
> useful to mention 'page allocation failure' somehow so that its easy for
        :::

How about the attached diff?


> rsync: readdir("/omega1-storage-4/." (in backups)): Invalid argument (22)=

Hmm, won't you investigate it a little more?
- which systemcall returned EINVAL(22)?
- what parameter did rsync pass to the systemcall (or readdir)?

And is your $LIBAU set to "all"?


> This appears to have happened after I upgraded the kernel to v4.3.3-5,

Is this version debian kernel pkg's?
According to your post in last year, your system is
        4.2.0-1-amd64 #1 SMP Debian 4.2.5-1 (2015-10-27) x86_64
        GNU/Linux - Debian Testing standard kernel.

If this problem is specific to debian v4.3.3-5 kernel, then I will try
finding the changes made in
1. vanilla v4.3.3
2. debian v4.3.3-5
particulary around ioctl(2).


J. R. Okajima

diff --git a/aufs.in.5 b/aufs.in.5
index 38b0884..f2e4875 100644
--- a/aufs.in.5
+++ b/aufs.in.5
@@ -304,7 +304,7 @@ The default value is \*[AUFS_DIRWH_DEF].
 Specifies a size of internal VDIR block which is allocated at a time in
 byte.
 The VDIR block will be allocated several times when necessary. If your
-directory has millions of files, you may want to expand this size.
+directory has tens of thousands of files, you may want to expand this size.
 The default value is defined as \*[AUFS_RDBLK_DEF].
 The size has to be lager than NAME_MAX (usually 255) and kmalloc\-able
 (the maximum limit depends on your system. at least 128KB is available
@@ -324,7 +324,7 @@ Specifies a size of internal VDIR hash table which is used 
to compare
 the file names under the same named directory on multiple branches.
 The VDIR hash table will be allocated in readdir(3)/getdents(2),
 rmdir(2) and rename(2) for the existing target directory. If your
-directory has millions of files, you may want to expand this size.
+directory has tens of thousands of files, you may want to expand this size.
 The default value is defined as \*[AUFS_RDHASH_DEF].
 The size has to be lager than zero, and it will be multiplied by 4 or 8
 (for 32\-bit and 64\-bit respectively, currently). The result must be
@@ -1307,7 +1307,7 @@ During building dir blocks, aufs creates hash list 
(hashed and divided by
 the entry is whiteout-ed by its upper branch or already listed.
 
 These values are suitable for normal environments. But you may have
-millions of files or very long filenames under a single directory. For
+tens of tousands of files or very long filenames under a single directory. For
 such cases, you may need to customize these values by specifying rdblk=
 and rdhash= aufs mount options.
 
@@ -1330,7 +1330,7 @@ not, the number of comparison will be 4. 2 memory 
allocations
 and 4 comparison costs low (even if the directory is opened for a long
 time). So you do not need to customize.
 
-If your directory has millions of files, the you will need to specify
+If your directory has tens of thousands of files, the you will need to specify
 rdblk= and rdhash=.
 
 .nf
@@ -1381,8 +1381,9 @@ If you use pathconf(3)/fpathconf(3) with _PC_LINK_MAX for 
aufs, you need
 to use libau.so.
 
 .SS VDIR/readdir(3) in user\-space (RDU)
-If you have a directory which has millions of files, aufs VDIR consumes
-much memory. You may meet "out of memory" message due to
+If you have a directory which has tens of thousands of files, aufs VDIR 
consumes
+much memory. You may meet "out of memory" message or "page allocation
+failure" due to
 the memory fragmentation or real starvation.
 In this case, RDU (readdir(3) in user\-space) may help you.
 Because the kernel memory space cannot be swappable and consuming much

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140

Reply via email to