From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Jones Subject: domU panic on nested call to arch_enter_lazy_mmu_mode() Date: Wed, 10 Apr 2013 11:35:35 -0400 (EDT) Message-ID: <1476610678.2256112.1365608135270.JavaMail.root@redhat.com> References: <1167409089.2244980.1365606532813.JavaMail.root@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1167409089.2244980.1365606532813.JavaMail.root@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel Cc: Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org Hi all, A couple years ago a thread[1] popped up here for a bug report that Jeremy followed up to with this patch[2]. That patch was never committed though (likely because the issue was difficult to reproduce/test). We've got a report now of the same issue for the rhel6 kernel running on EC2. It's pretty certain that it's the same, because the reproducer steps[3] given would certainly generate the same call sequences shown in [1], and applying the proposed patch[2] to the rhel6 kernel fixes it. Now, while the grant table code has changed some between what rhel6 has and recent kernels, I believe the issue should still be present with recent kernels. However, we attempted to reproduce using a Fedora18 kernel (>3.8) and could not. So I'm writing to see if I'm missing something in my analysis - meaning upstream is no longer at risk of hitting this bug, and/or if Jeremy's proposed patch was rejected for other reasons than not being testable (or just forgotten). If not, then I'd suggest we repost it. Thanks, drew [1] http://lists.xen.org/archives/html/xen-devel/2010-12/msg00440.html [2] http://lists.xen.org/archives/html/xen-devel/2010-12/msg00505.html [3] Reproducer steps 1. Start a instance which is a c1.xlarge of Amazon EC2 Instance type. (c1.xlarge has 8 cores) 2. create 7 file systems(ext3) on top of Amazon EBS volumes 3. mount 7 file sytemes you created 4. For increasing page table operations, create a following program -- #include #include #include int main(void) { int status; pid_t pid; for (;;) { pid = fork(); if (pid == 0) { return 0; } wait(&status); } } -- 5. run the program pinning CPU0 # gcc fork.c # taskset -c 0 ./a.out 6. For using grant table, execute simultaneous write operation to 7 EBS volumes. ( c1.xlarge can use 8CPU so execute simultaneous write to CPU1-CPU7 except CPU0 ) For instance: -- for i in `seq 1 7`; do taskset -c $i dd if=/dev/zero of=/mnt/$i/testfile bs=10M count=10000 oflag=direct & done