mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-14 21:48:49 +00:00
176d1b9643
New writeback changes in 4.2-RC1 have exposed that we incorrectly set page_writeback on a page that is being written synchronously, which aside from this new crash (dereference of NULL inode->i_wb from set_page_writeback) likely threw off some related page statistics in the past. BUG: unable to handle kernel NULL pointer dereference at 0000000000000138 IP: [<ffffffff8140d90a>] __percpu_counter_add+0x1a/0x80 PGD 0 Oops: 0000 [#1] SMP DEBUG_PAGEALLOC Modules linked in: osc(C) lmv(C) fld(C) mgc(C) lustre(C) mdc(C) fid(C) lov(C) ksocklnd(C) ptlrpc(C) obdclass(C) lnet(C) libcfs(C) loop sha512_generic crc32 rpcsec_gss_krb5 microcode joydev i2c_piix4 acpi_cpufreq pcspkr nfsd syscopyarea sysfillrect sysimgblt drm_kms_helper ttm drm serio_raw virtio_blk [last unloaded: libcfs] CPU: 0 PID: 13328 Comm: cvs Tainted: G C 4.2.0-rc1-vm-nfs+ #30 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 task: ffff8800cc98a400 ti: ffff8801157e8000 task.ti: ffff8801157e8000 RIP: 0010:[<ffffffff8140d90a>] [<ffffffff8140d90a>] __percpu_counter_add+0x1a/0x80 RSP: 0018:ffff8801157eb698 EFLAGS: 00010086 RAX: 0000000000000003 RBX: ffffea0002b91cc0 RCX: 000000000000001a RDX: 0000000000000020 RSI: 0000000000000001 RDI: 00000000000000e8 RBP: ffff8801157eb6b8 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 00000000000000e8 R13: 0000000000000001 R14: ffff8800673587a8 R15: ffff8800673589b0 FS: 00007f6718b89800(0000) GS:ffff88011f400000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000138 CR3: 000000009d51c000 CR4: 00000000000007f0 Stack: ffffffff811919e2 ffffea0002b91cc0 ffff880067358998 ffff880119419800 ffff8801157eb718 ffffffff81191a58 ffff8801157eb788 0000000000000282 ffff8800ce5ce920 0000000000000000 ffff8800a525af80 ffff880053f68f10 Call Trace: [<ffffffff811919e2>] ? __test_set_page_writeback+0x72/0x240 [<ffffffff81191a58>] __test_set_page_writeback+0xe8/0x240 [<ffffffffa04e7a13>] vvp_page_prep_write+0x33/0xb0 [lustre] [<ffffffffa028ad87>] cl_page_invoke+0x57/0x90 [obdclass] [<ffffffffa028cc8d>] cl_page_prep+0x2d/0x180 [obdclass] [<ffffffffa0545d84>] osc_io_submit+0x134/0x4a0 [osc] [<ffffffffa02933a3>] cl_io_submit_rw+0x53/0xb0 [obdclass] [<ffffffffa0483635>] lov_io_submit+0x3a5/0x570 [lov] [<ffffffff810cb7bb>] ? lockdep_init_map+0x5b/0x6d0 [<ffffffffa02933a3>] cl_io_submit_rw+0x53/0xb0 [obdclass] [<ffffffffa029428d>] cl_io_submit_sync+0xed/0x1c0 [obdclass] [<ffffffffa04e881d>] vvp_page_sync_io.isra.15+0x4d/0x100 [lustre] [<ffffffffa028dd2f>] ? cl_page_clip+0xff/0x130 [obdclass] [<ffffffffa04e9f38>] vvp_io_commit_write+0x448/0x500 [lustre] [<ffffffffa02939fa>] cl_io_commit_write+0x9a/0x130 [obdclass] [<ffffffffa04cb222>] ll_commit_write+0xc2/0x230 [lustre] [<ffffffffa04dbdaa>] ll_write_end+0x2a/0x50 [lustre] [<ffffffff811851ba>] generic_perform_write+0xfa/0x1b0 [<ffffffff8121fd2e>] ? dentry_needs_remove_privs.part.16+0x1e/0x30 [<ffffffff811877d0>] __generic_file_write_iter+0x190/0x1f0 [<ffffffff8118791a>] generic_file_write_iter+0xea/0x1e0 [<ffffffffa04e8dd0>] vvp_io_write_start+0xa0/0x1e0 [lustre] [<ffffffffa0292469>] cl_io_start+0x49/0x80 [obdclass] [<ffffffffa0294803>] cl_io_loop+0x73/0xd0 [obdclass] [<ffffffffa04b4ebf>] ll_file_io_generic+0x45f/0x4b0 [lustre] [<ffffffffa04b504c>] ll_file_write_iter+0x6c/0xc0 [lustre] [<ffffffff8120330a>] __vfs_write+0xaa/0xe0 [<ffffffff81203969>] vfs_write+0xa9/0x190 [<ffffffff812046c9>] SyS_write+0x49/0xa0 [<ffffffff81796572>] entry_SYSCALL_64_fastpath+0x16/0x7a Code: 5b 41 5c 41 5d 41 5e 5d c3 0f 1f 84 00 00 00 00 00 55 48 89 e5 41 55 41 54 53 49 89 fc 49 89 f5 48 83 ec 08 65 ff 05 8e d1 bf 7e <48> 8b 47 50 48 63 ca 65 8b 18 48 63 db 48 01 f3 48 39 cb 7d 0a Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Reviewed-on: http://review.whamcloud.com/15610 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6854 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Lustre Parallel Filesystem Client ================================= The Lustre file system is an open-source, parallel file system that supports many requirements of leadership class HPC simulation environments. Born from from a research project at Carnegie Mellon University, the Lustre file system is a widely-used option in HPC. The Lustre file system provides a POSIX compliant file system interface, can scale to thousands of clients, petabytes of storage and hundreds of gigabytes per second of I/O bandwidth. Unlike shared disk storage cluster filesystems (e.g. OCFS2, GFS, GPFS), Lustre has independent Metadata and Data servers that clients can access in parallel to maximize performance. In order to use Lustre client you will need to download lustre client tools from https://downloads.hpdd.intel.com/public/lustre/latest-feature-release/ the package name is lustre-client. You will need to install and configure your Lustre servers separately. Mount Syntax ============ After you installed the lustre-client tools including mount.lustre binary you can mount your Lustre filesystem with: mount -t lustre mgs:/fsname mnt where mgs is the host name or ip address of your Lustre MGS(management service) fsname is the name of the filesystem you would like to mount. Mount Options ============= noflock Disable posix file locking (Applications trying to use the functionality will get ENOSYS) localflock Enable local flock support, using only client-local flock (faster, for applications that require flock but do not run on multiple nodes). flock Enable cluster-global posix file locking coherent across all client nodes. user_xattr, nouser_xattr Support "user." extended attributes (or not) user_fid2path, nouser_fid2path Enable FID to path translation by regular users (or not) checksum, nochecksum Verify data consistency on the wire and in memory as it passes between the layers (or not). lruresize, nolruresize Allow lock LRU to be controlled by memory pressure on the server (or only 100 (default, controlled by lru_size proc parameter) locks per CPU per server on this client). lazystatfs, nolazystatfs Do not block in statfs() if some of the servers are down. 32bitapi Shrink inode numbers to fit into 32 bits. This is necessary if you plan to reexport Lustre filesystem from this client via NFSv4. verbose, noverbose Enable mount/umount console messages (or not) More Information ================ You can get more information at OpenSFS website: http://lustre.opensfs.org/about/ Intel HPDD wiki: https://wiki.hpdd.intel.com Out of tree Lustre client and server code is available at: http://git.whamcloud.com/fs/lustre-release.git Latest binary packages: http://lustre.opensfs.org/download-lustre/