aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-05-22bnx2x: fix DMAE timeout according to hw specificationsDmitry Kravkov1-1/+1
Signed-off-by: Dmitry Kravkov <[email protected]> Signed-off-by: Eilon Greenstein <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22bnx2x: properly handle CFC DEL in cnic flowVladislav Zolotarov1-1/+2
Signed-off-by: Dmitry Kravkov <[email protected]> Signed-off-by: Eilon Greenstein <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22bnx2x: call dev_kfree_skb_any instead of dev_kfree_skbVladislav Zolotarov2-3/+3
replace function calls when possible call in both irq/non-irq contexts Signed-off-by: Dmitry Kravkov <[email protected]> Signed-off-by: Eilon Greenstein <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22net: filter: move forward declarations to avoid compile warningsHeiko Carstens1-3/+4
Get rid of this compile warning: In file included from arch/s390/kernel/compat_linux.c:37:0: include/linux/filter.h:139:23: warning: 'struct sk_buff' declared inside parameter list Signed-off-by: Heiko Carstens <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22pktgen: refactor pg_init() codeWANG Cong1-7/+12
This also shrinks the object size a little. text data bss dec hex filename 28834 186 8 29028 7164 net/core/pktgen.o 28816 186 8 29010 7152 net/core/pktgen.o.AFTER Signed-off-by: WANG Cong <[email protected]> Cc: "David Miller" <[email protected]>, Signed-off-by: David S. Miller <[email protected]>
2011-05-22pktgen: use vzalloc_node() instead of vmalloc_node() + memset()WANG Cong1-2/+1
Signed-off-by: WANG Cong <[email protected]> Cc: "David S. Miller" <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22net: skb_trim explicitely check the linearity instead of data_lenEmmanuel Grumbach1-1/+1
The purpose of the check on data_len is to check linearity, so use the inline helper for this. No overhead and more explicit. Signed-off-by: Emmanuel Grumbach <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22ipv4: Give backtrace in ip_rt_bug().Dave Jones1-0/+1
Add a stack backtrace to the ip_rt_bug path for debugging Signed-off-by: Dave Jones <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22net: avoid synchronize_rcu() in dev_deactivate_manyEric Dumazet1-2/+15
dev_deactivate_many() issues one synchronize_rcu() call after qdiscs set to noop_qdisc. This call is here to make sure they are no outstanding qdisc-less dev_queue_xmit calls before returning to caller. But in dismantle phase, we dont have to wait, because we wont activate again the device, and we are going to wait one rcu grace period later in rollback_registered_many(). After this patch, device dismantle uses one synchronize_net() and one rcu_barrier() call only, so we have a ~30% speedup and a smaller RTNL latency. Signed-off-by: Eric Dumazet <[email protected]> CC: Patrick McHardy <[email protected]>, CC: Ben Greear <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22net: remove synchronize_net() from netdev_set_master()Eric Dumazet2-3/+2
In the old days, we used to access dev->master in __netif_receive_skb() in a rcu_read_lock section. So one synchronize_net() call was needed in netdev_set_master() to make sure another cpu could not use old master while/after we release it. We now use netdev_rx_handler infrastructure and added one synchronize_net() call in bond_release()/bond_release_all() Remove the obsolete synchronize_net() from netdev_set_master() and add one in bridge del_nbp() after its netdev_rx_handler_unregister() call. This makes enslave -d a bit faster. Signed-off-by: Eric Dumazet <[email protected]> CC: Jiri Pirko <[email protected]> CC: Stephen Hemminger <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22rtnetlink: ignore NETDEV_RELEASE and NETDEV_JOIN eventAmerigo Wang1-0/+2
These two events are not expected to be caught by userspace. Signed-off-by: WANG Cong <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22net: rename NETDEV_BONDING_DESLAVE to NETDEV_RELEASEAmerigo Wang3-5/+5
s/NETDEV_BONDING_DESLAVE/NETDEV_RELEASE/ as Andy suggested. Signed-off-by: WANG Cong <[email protected]> Cc: Andy Gospodarek <[email protected]> Cc: Neil Horman <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22bridge: call NETDEV_JOIN notifiers when add a slaveAmerigo Wang1-0/+2
In the previous patch I added NETDEV_JOIN, now we can notify netconsole when adding a device to a bridge too. Signed-off-by: WANG Cong <[email protected]> Cc: Neil Horman <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22netpoll: disable netpoll when enslave a deviceAmerigo Wang3-9/+20
V3: rename NETDEV_ENSLAVE to NETDEV_JOIN Currently we do nothing when we enslave a net device which is running netconsole. Neil pointed out that we may get weird results in such case, so let's disable netpoll on the device being enslaved. I think it is too harsh to prevent the device being ensalved if it is running netconsole. By the way, this patch also removes the NETDEV_GOING_DOWN from netconsole netdev notifier, because netpoll will check if the device is running or not and we don't handle NETDEV_PRE_UP neither. This patch is based on net-next-2.6. Signed-off-by: WANG Cong <[email protected]> Cc: Neil Horman <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22macvlan: Forward unicast frames in bridge mode to lowerdevDavid Ward1-4/+2
Unicast frames between macvlan interfaces in bridge mode are not otherwise sent to network taps on the lowerdev (as all other macvlan frames are), so forward the frames to the receive queue of the lowerdev first. Signed-off-by: David Ward <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22net: Remove linux/prefetch.h include from linux/skbuff.hDavid S. Miller1-1/+0
No longer needed. Signed-off-by: David S. Miller <[email protected]>
2011-05-22ipv4: Include linux/prefetch.h in fib_trie.cDavid S. Miller1-0/+1
Signed-off-by: David S. Miller <[email protected]>
2011-05-22netlabel: Remove prefetches from list handlers.David S. Miller1-4/+4
Signed-off-by: David S. Miller <[email protected]>
2011-05-22drivers/net: add prefetch header for prefetch usersPaul Gortmaker32-0/+32
After discovering that wide use of prefetch on modern CPUs could be a net loss instead of a win, net drivers which were relying on the implicit inclusion of prefetch.h via the list headers showed up in the resulting cleanup fallout. Give them an explicit include via the following $0.02 script. ========================================= #!/bin/bash MANUAL="" for i in `git grep -l 'prefetch(.*)' .` ; do grep -q '<linux/prefetch.h>' $i if [ $? = 0 ] ; then continue fi ( echo '?^#include <linux/?a' echo '#include <linux/prefetch.h>' echo . echo w echo q ) | ed -s $i > /dev/null 2>&1 if [ $? != 0 ]; then echo $i needs manual fixup MANUAL="$i $MANUAL" fi done echo ------------------- 8\<---------------------- echo vi $MANUAL ========================================= Signed-off-by: Paul <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22rionet: Remove pointless printk of skb pointer.David S. Miller1-2/+2
Casting to u32 warns anyways. Signed-off-by: David S. Miller <[email protected]>
2011-05-22net: Remove prefetches from SKB list handlers.David S. Miller1-3/+3
Noticed by Linus. Signed-off-by: David S. Miller <[email protected]>
2011-05-22caif: Plug memory leak for checksum error[email protected]1-1/+6
In case of checksum error, the framing layer returns -EILSEQ, but does not free the packet. Plug this hole by freeing the packet if -EILSEQ is returned. Signed-off-by: Sjur Brændeland <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22caif: Update documentation of CAIF transmit and receive functions.[email protected]1-15/+21
Trivial patch updating documentation in header files only. Error handling of CAIF transmit errors was changed by commit: caif: Don't resend if dev_queue_xmit fails. This patch updates the documentation accordingly. Signed-off-by: Sjur Brændeland <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22caif: Fix freezes when running CAIF loopback device[email protected]1-4/+5
Fix spinlock bugs when running out of link-ids in loopback tests and avoid allocating link-id when error is set in link-setup-response. Signed-off-by: Sjur Brændeland <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22caif: Fixes freeze on Link layer removal.[email protected]3-44/+62
CAIF Socket layer - caif_socket.c: - Plug mem-leak at reconnect. - Always call disconnect to cleanup CAIF stack. - Disconnect will always report success. CAIF configuration layer - cfcnfg.c - Disconnect must dismantle the caif stack correctly - Protect against faulty removals (check on id zero) CAIF mux layer - cfmuxl.c - When inserting new service layer in the MUX remove any old entries with the same ID. - When removing CAIF Link layer, remove the associated service layers before notifying service layers. Signed-off-by: Sjur Brændeland <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22caif: Bugfix add check NULL pointer before calling functions.[email protected]1-9/+26
Add check on layer->dn != NULL before calling functions in layer below. Signed-off-by: Sjur Brændeland <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-05-22Give up on pushing CC_OPTIMIZE_FOR_SIZELinus Torvalds1-1/+0
I still happen to believe that I$ miss costs are a major thing, but sadly, -Os doesn't seem to be the solution. With or without it, gcc will miss some obvious code size improvements, and with it enabled gcc will sometimes make choices that aren't good even with high I$ miss ratios. For example, with -Os, gcc on x86 will turn a 20-byte constant memcpy into a "rep movsl". While I sincerely hope that x86 CPU's will some day do a good job at that, they certainly don't do it yet, and the cost is higher than a L1 I$ miss would be. Some day I hope we can re-enable this. Signed-off-by: Linus Torvalds <[email protected]>
2011-05-22Merge branch 'viafb-next' of git://github.com/schandinat/linux-2.6Linus Torvalds19-706/+723
* 'viafb-next' of git://github.com/schandinat/linux-2.6: (24 commits) viafb: Automatic OLPC XO-1.5 configuration viafb: remove unused CEA mode viafb: try to map less memory in case of failure viafb: use write combining for video ram viafb: add X server compatibility mode viafb: reduce OLPC refresh a bit viafb: fix OLPC XO 1.5 device connection viafb: fix OLPC DCON refresh rate viafb: delete clock and PLL initialization viafb: replace custom return values viafb: some small cleanup for global variables viafb: gather common good, old VGA initialization in one place viafb: add engine clock support viafb: add VIA slapping capability viafb: split clock and PLL code to an extra file viafb: add primary/secondary clock on/off switches viafb: add clock source selection and PLL power management support viafb: prepare for PLL separation viafb: call viafb_get_clk_value only in viafb_set_vclock viafb: remove unused max_hres/vres ...
2011-05-22Merge branch 'for-linus' of ↵Linus Torvalds12-130/+206
git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6: [PARISC] wire up syncfs syscall [PARISC] wire up the fhandle syscalls [PARISC] wire up clock_adjtime syscall [PARISC] wire up fanotify syscalls [PARISC] prevent speculative re-read on cache flush [PARISC] only make executable areas executable [PARISC] fix pacache .size with new binutils
2011-05-22fs: add missing prefetch.h includeHeiko Carstens1-0/+1
Fixes this build error on s390 and probably other archs as well: fs/inode.c: In function 'new_inode': fs/inode.c:894:2: error: implicit declaration of function 'spin_lock_prefetch' Signed-off-by: Heiko Carstens <[email protected]> [ Happens on architectures that don't define their own prefetch functions in <asm/processor.h>, and instead rely on the default ones in <linux/prefetch.h> - Linus] Signed-off-by: Linus Torvalds <[email protected]>
2011-05-22net: add missing prefetch.h includeHeiko Carstens1-0/+1
Fixes build errors on s390 and probably other archs as well: In file included from net/ipv4/ip_forward.c:32:0: include/net/udp.h: In function 'udp_csum_outgoing': include/net/udp.h:141:2: error: implicit declaration of function 'prefetch' Signed-off-by: Heiko Carstens <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2011-05-22KVM: MMU: Use ptep_user for cmpxchg_gpte()Takuya Yoshikawa1-14/+12
The address of the gpte was already calculated and stored in ptep_user before entering cmpxchg_gpte(). This patch makes cmpxchg_gpte() to use that to make it clear that we are using the same address during walk_addr_generic(). Note that the unlikely annotations are used to show that the conditions are something unusual rather than for performance. Signed-off-by: Takuya Yoshikawa <[email protected]> Signed-off-by: Marcelo Tosatti <[email protected]>
2011-05-22KVM: Fix kvm mmu_notifier initialization orderOGAWA Hirofumi1-1/+1
Like the following, mmu_notifier can be called after registering immediately. So, kvm have to initialize kvm->mmu_lock before it. BUG: spinlock bad magic on CPU#0, kswapd0/342 lock: ffff8800af8c4000, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0 Pid: 342, comm: kswapd0 Not tainted 2.6.39-rc5+ #1 Call Trace: [<ffffffff8118ce61>] spin_bug+0x9c/0xa3 [<ffffffff8118ce91>] do_raw_spin_lock+0x29/0x13c [<ffffffff81024923>] ? flush_tlb_others_ipi+0xaf/0xfd [<ffffffff812e22f3>] _raw_spin_lock+0x9/0xb [<ffffffffa0582325>] kvm_mmu_notifier_clear_flush_young+0x2c/0x66 [kvm] [<ffffffff810d3ff3>] __mmu_notifier_clear_flush_young+0x2b/0x57 [<ffffffff810c8761>] page_referenced_one+0x88/0xea [<ffffffff810c89bf>] page_referenced+0x1fc/0x256 [<ffffffff810b2771>] shrink_page_list+0x187/0x53a [<ffffffff810b2ed7>] shrink_inactive_list+0x1e0/0x33d [<ffffffff810acf95>] ? determine_dirtyable_memory+0x15/0x27 [<ffffffff812e90ee>] ? call_function_single_interrupt+0xe/0x20 [<ffffffff810b3356>] shrink_zone+0x322/0x3de [<ffffffff810a9587>] ? zone_watermark_ok_safe+0xe2/0xf1 [<ffffffff810b3928>] kswapd+0x516/0x818 [<ffffffff810b3412>] ? shrink_zone+0x3de/0x3de [<ffffffff81053d17>] kthread+0x7d/0x85 [<ffffffff812e9394>] kernel_thread_helper+0x4/0x10 [<ffffffff81053c9a>] ? __init_kthread_worker+0x37/0x37 [<ffffffff812e9390>] ? gs_change+0xb/0xb Signed-off-by: OGAWA Hirofumi <[email protected]> Signed-off-by: Avi Kivity <[email protected]>
2011-05-22KVM: Add documentation for KVM_CAP_NR_VCPUSPekka Enberg1-1/+4
Document KVM_CAP_NR_VCPUS that can be used by the userspace to determine maximum number of VCPUs it can create with the KVM_CREATE_VCPU ioctl. Cc: Avi Kivity <[email protected]> Cc: Marcelo Tosatti <[email protected]> Cc: Jan Kiszka <[email protected]> Signed-off-by: Pekka Enberg <[email protected]> Signed-off-by: Avi Kivity <[email protected]>
2011-05-22KVM: make guest mode entry to be rcu quiescent stateGleb Natapov1-0/+9
KVM does not hold any references to rcu protected data when it switches CPU into a guest mode. In fact switching to a guest mode is very similar to exiting to userspase from rcu point of view. In addition CPU may stay in a guest mode for quite a long time (up to one time slice). Lets treat guest mode as quiescent state, just like we do with user-mode execution. Signed-off-by: Gleb Natapov <[email protected]> Signed-off-by: Avi Kivity <[email protected]>
2011-05-22Merge commit '29ce831000081dd757d3116bf774aafffc4b6b20' into nextAvi Kivity21-551/+1783
* commit '29ce831000081dd757d3116bf774aafffc4b6b20': (34 commits) rcu: provide rcu_virt_note_context_switch() function. rcu: get rid of signed overflow in check_cpu_stall() rcu: optimize rcutiny rcu: prevent call_rcu() from diving into rcu core if irqs disabled rcu: further lower priority in rcu_yield() rcu: introduce kfree_rcu() rcu: fix spelling rcu: call __rcu_read_unlock() in exit_rcu for tree RCU rcu: Converge TINY_RCU expedited and normal boosting rcu: remove useless ->boosted_this_gp field rcu: code cleanups in TINY_RCU priority boosting. rcu: Switch to this_cpu() primitives rcu: Use WARN_ON_ONCE for DEBUG_OBJECTS_RCU_HEAD warnings rcu: mark rcutorture boosting callback as being on-stack rcu: add DEBUG_OBJECTS_RCU_HEAD check for alignment rcu: Enable DEBUG_OBJECTS_RCU_HEAD from !PREEMPT rcu: Add forward-progress diagnostic for per-CPU kthreads rcu: add grace-period age and more kthread state to tracing rcu: fix tracing bug thinko on boost-balk attribution rcu: update tracing documentation for new rcutorture and rcuboost ... Pulling in rcu_virt_note_context_switch(). Signed-off-by: Avi Kivity <[email protected]> * commit '29ce831000081dd757d3116bf774aafffc4b6b20': (34 commits) rcu: provide rcu_virt_note_context_switch() function. rcu: get rid of signed overflow in check_cpu_stall() rcu: optimize rcutiny rcu: prevent call_rcu() from diving into rcu core if irqs disabled rcu: further lower priority in rcu_yield() rcu: introduce kfree_rcu() rcu: fix spelling rcu: call __rcu_read_unlock() in exit_rcu for tree RCU rcu: Converge TINY_RCU expedited and normal boosting rcu: remove useless ->boosted_this_gp field rcu: code cleanups in TINY_RCU priority boosting. rcu: Switch to this_cpu() primitives rcu: Use WARN_ON_ONCE for DEBUG_OBJECTS_RCU_HEAD warnings rcu: mark rcutorture boosting callback as being on-stack rcu: add DEBUG_OBJECTS_RCU_HEAD check for alignment rcu: Enable DEBUG_OBJECTS_RCU_HEAD from !PREEMPT rcu: Add forward-progress diagnostic for per-CPU kthreads rcu: add grace-period age and more kthread state to tracing rcu: fix tracing bug thinko on boost-balk attribution rcu: update tracing documentation for new rcutorture and rcuboost ...
2011-05-22KVM: x86 emulator: Make jmp far emulation into a separate functionTakuya Yoshikawa1-14/+22
We introduce em_jmp_far(). We also call this from em_grp45() to stop treating modrm_reg == 5 case separately in the group 5 emulation. Signed-off-by: Takuya Yoshikawa <[email protected]> Signed-off-by: Avi Kivity <[email protected]>
2011-05-22KVM: x86 emulator: Rename emulate_grpX() to em_grpX()Takuya Yoshikawa1-16/+15
The prototypes are changed appropriately. We also replaces "goto grp45;" with simple em_grp45() call. Signed-off-by: Takuya Yoshikawa <[email protected]> Signed-off-by: Avi Kivity <[email protected]>
2011-05-22KVM: x86 emulator: Remove unused arg from emulate_pop()Takuya Yoshikawa1-15/+13
The opt of emulate_grp1a() is also removed. Signed-off-by: Takuya Yoshikawa <[email protected]> Signed-off-by: Avi Kivity <[email protected]>
2011-05-22KVM: x86 emulator: Remove unused arg from writeback()Takuya Yoshikawa1-3/+2
Remove inline at this chance. Signed-off-by: Takuya Yoshikawa <[email protected]> Signed-off-by: Avi Kivity <[email protected]>
2011-05-22KVM: x86 emulator: Remove unused arg from read_descriptor()Takuya Yoshikawa1-5/+3
Signed-off-by: Takuya Yoshikawa <[email protected]> Signed-off-by: Avi Kivity <[email protected]>
2011-05-22KVM: x86 emulator: Remove unused arg from seg_override()Takuya Yoshikawa1-4/+3
In addition, one comma at the end of a statement is replaced with a semicolon. Signed-off-by: Takuya Yoshikawa <[email protected]> Signed-off-by: Avi Kivity <[email protected]>
2011-05-22KVM: Validate userspace_addr of memslot when registeredTakuya Yoshikawa2-3/+6
This way, we can avoid checking the user space address many times when we read the guest memory. Although we can do the same for write if we check which slots are writable, we do not care write now: reading the guest memory happens more often than writing. [avi: change VERIFY_READ to VERIFY_WRITE] Signed-off-by: Takuya Yoshikawa <[email protected]> Signed-off-by: Avi Kivity <[email protected]>
2011-05-22KVM: MMU: Clean up gpte reading with copy_from_user()Takuya Yoshikawa1-15/+1
When we optimized walk_addr_generic() by not using the generic guest memory reader, we replaced copy_from_user() with get_user(): commit e30d2a170506830d5eef5e9d7990c5aedf1b0a51 KVM: MMU: Optimize guest page table walk commit 15e2ac9a43d4d7d08088e404fddf2533a8e7d52e KVM: MMU: Fix 64-bit paging breakage on x86_32 But as Andi pointed out later, copy_from_user() does the same as get_user() as long as we give a constant size to it. So we use copy_from_user() to clean up the code. The only, noticeable, regression introduced by this is 64-bit gpte reading on x86_32 hosts needed for PAE guests. But this can be mitigated by implementing 8-byte get_user() for x86_32, if needed. Signed-off-by: Takuya Yoshikawa <[email protected]> Signed-off-by: Avi Kivity <[email protected]>
2011-05-22KVM: PPC: booke: add sregs supportScott Wood14-13/+461
Signed-off-by: Scott Wood <[email protected]> Signed-off-by: Alexander Graf <[email protected]>
2011-05-22KVM: PPC: booke: save/restore VRSAVE (a.k.a. USPRG0)Scott Wood4-1/+15
Linux doesn't use USPRG0 (now renamed VRSAVE in the architecture, even when Altivec isn't involved), but a guest might. Signed-off-by: Scott Wood <[email protected]> Signed-off-by: Alexander Graf <[email protected]>
2011-05-22KVM: PPC: use ticks, not usecs, for exit timingStuart Yoder1-4/+17
Convert to microseconds when displaying (with fix from Bharat Bhushan <[email protected]>). This reduces rounding error with large quantities of short exits. Signed-off-by: Stuart Yoder <[email protected]> Signed-off-by: Scott Wood <[email protected]> Signed-off-by: Alexander Graf <[email protected]>
2011-05-22KVM: PPC: fix exit accounting for SPRs, tlbwe, tlbsxScott Wood3-3/+6
The exit type setting for mfspr/mtspr is moved from 44x to toplevel SPR emulation. This enables it on e500, and makes sure that all SPRs are covered. Exit accounting for tlbwe and tlbsx is added to e500. Signed-off-by: Stuart Yoder <[email protected]> Signed-off-by: Scott Wood <[email protected]> Signed-off-by: Alexander Graf <[email protected]>
2011-05-22KVM: PPC: e500: emulate SVRScott Wood3-0/+4
Return the actual host SVR for now, as we already do for PVR. Eventually we may support Qemu overriding PVR/SVR if the situation is appropriate, once we implement KVM_SET_SREGS on e500. Signed-off-by: Scott Wood <[email protected]> Signed-off-by: Alexander Graf <[email protected]>
2011-05-22KVM: VMX: Cache vmcs segment fieldsAvi Kivity2-10/+93
Since the emulator now checks segment limits and access rights, it generates a lot more accesses to the vmcs segment fields. Undo some of the performance hit by cacheing those fields in a read-only cache (the entire cache is invalidated on any write, or on guest exit). Signed-off-by: Avi Kivity <[email protected]>