James Bottomley wrote on 01/04/2017 02:05:35 PM: > From: James Bottomley > To: Stefan Berger/Watson/IBM@IBMUS > Cc: Jarkko Sakkinen , tpmdd- > devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org, Jason Gunthorpe > Date: 01/04/2017 02:05 PM > Subject: Re: [tpmdd-devel] [PATCH RFC 2/4] tpm: validate TPM 2.0 commands > > On Wed, 2017-01-04 at 13:59 -0500, Stefan Berger wrote: > > [ 67.699811] WARNING: CPU: 12 PID: 870 at mm/page_alloc.c:3511 > > What's the code context around this line in your source? Or what > kernel version? If it's this > > if (order >= MAX_ORDER) { > WARN_ON_ONCE(!(gfp_mask & __GFP_NOWARN)); > return NULL; > } > I am running Jarkko's tree, the tabrm branch. 4.9.0-rc5 I think. I have exactly what you are showing above. > Then I think you may have returned bogus data to TPM_PT_TOTAL_COMMANDS; > perhaps print nr_commands. Ha, what is likely the cause here is that the test suite, which implements only a few commands to respond to the kernel with from the vtpm proxy side, isn't feeding good data to the driver and the nr_commands ends up being 0... or actually bogus data / not initialized. I guess the function should check for valid input. Stefan > > James > > > __alloc_pages_slowpath+0x771/0xaf0 > > [ 67.701198] Modules linked in: > > [ 67.701400] tpm_vtpm_proxy > > [ 67.701642] nf_conntrack_netbios_ns nf_conntrack_broadcast > > [ 67.702450] ip6t_rpfilter > > [ 67.702662] ip6t_REJECT nf_reject_ipv6 xt_conntrack ebtable_nat > > [ 67.703618] ebtable_broute > > [ 67.703784] bridge stp llc ebtable_filter > > [ 67.704213] ebtables > > [ 67.704367] ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 > > [ 67.705310] nf_nat_ipv6 > > [ 67.705523] ip6table_mangle ip6table_security ip6table_raw > > ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 > > nf_defrag_ipv4 > > nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_security > > iptable_raw nfsd auth_rpcgss nfs_acl lockd crc32c_intel tpm_tis > > virtio_balloon i2c_piix4 tpm_tis_core > > [ 67.711414] i2c_core > > [ 67.711610] joydev tpm pcspkr grace sunrpc > > [ 67.712170] 8139too > > [ 67.712360] virtio_pci 8139cp virtio_ring serio_raw > > [ 67.713504] ata_generic > > [ 67.713706] mii floppy pata_acpi virtio > > [ 67.714891] CPU: 12 PID: 870 Comm: kworker/12:2 Not tainted 4.9.0 > > -rc5+ > > #652 > > [ 67.715054] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), > > BIOS > > rel-1.10.1-0-g8891697-prebuilt.qemu-project.org 04/01/2014 > > [ 67.715054] Workqueue: tpm-vtpm vtpm_proxy_work [tpm_vtpm_proxy] > > [ 67.715054] ffffc90002b6fa80 ffffffff8140cad1 > > [ 67.715054] 0000000000000000 > > [ 67.715054] 0000000000000000 > > [ 67.715054] ffffc90002b6fac0 ffffffff810a8b6b 00000db7aba7d298 > > 00000000026000c0 > > [ 67.715054] 0000000000000000 0000000000000014 000000000260c0c0 > > ffff8802aba7ca00 > > [ 67.715054] Call Trace: > > [ 67.715054] [] dump_stack+0x63/0x82 > > [ 67.715054] [] __warn+0xcb/0xf0 > > [ 67.715054] [] warn_slowpath_null+0x1d/0x20 > > [ 67.715054] [] > > __alloc_pages_slowpath+0x771/0xaf0 > > [ 67.715054] [] ? > > get_page_from_freelist+0x526/0xaf0 > > [ 67.715054] [] ? > > __mutex_unlock_slowpath+0xe3/0x1a0 > > [ 67.715054] [] > > __alloc_pages_nodemask+0x32f/0x390 > > [ 67.715054] [] kmalloc_large_node+0x7e/0xe0 > > [ 67.715054] [] > > __kmalloc_node_track_caller+0x225/0x2c0 > > [ 67.715054] [] ? tpm2_auto_startup+0xa2/0x2e0 > > [tpm] > > [ 67.715054] [] devm_kmalloc+0x27/0x70 > > [ 67.715054] [] tpm2_auto_startup+0xa2/0x2e0 > > [tpm] > > [ 67.715054] [] tpm_chip_register+0x5c/0x200 > > [tpm] > > [ 67.715054] [] vtpm_proxy_work+0x19/0x40 > > [tpm_vtpm_proxy] > > [ 67.715054] [] process_one_work+0x1f3/0x560 > > [ 67.715054] [] ? process_one_work+0x171/0x560 > > [ 67.715054] [] worker_thread+0x4e/0x480 > > [ 67.715054] [] ? process_one_work+0x560/0x560 > > [ 67.715054] [] ? process_one_work+0x560/0x560 > > [ 67.715054] [] kthread+0xf4/0x110 > > [ 67.715054] [] ? kthread_park+0x60/0x60 > > [ 67.715054] [] ret_from_fork+0x25/0x30 > > [ 67.746343] ---[ end trace 4d9abf66365987bd ]--- > > > > > > >