WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: [PATCH 1/2] fbdev: Make deferred I/O work as advertized

To: "Markus Armbruster" <armbru@xxxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH 1/2] fbdev: Make deferred I/O work as advertized
From: "Jaya Kumar" <jayakumar.lkml@xxxxxxxxx>
Date: Fri, 22 Feb 2008 00:30:58 +0800
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, linux-fbdev-devel@xxxxxxxxxxxxxxxxxxxxx, dmitry.torokhov@xxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, virtualization@xxxxxxxxxxxxxx, linux-input@xxxxxxxxxxxxxxx, adaplas@xxxxxxx, akpm@xxxxxxxxxxxxxxxxxxxx
Delivery-date: Fri, 22 Feb 2008 07:37:14 -0800
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=eKHVc2254U8mPwcLesE5PpxxbD+qI9+XECUX2sLnnTY=; b=mYJTiITCG4rmd/LIyG+MLwKTRmOt7U31DGtqbYYx4a474HqJLICgT/giFe744ncINlh/+dhe/5GqBN6M8/7T4nDGkMTdyIdFSICfsxoSe3/2YKdMHML7R74Ap6O5OgbAd78dPOnEsxL1+axaDTW07Ca+0tjxnpzO5zgY2/Z0xPA=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=DHnjaPqreNKS9/Q7H5xy4ttiEaOW67S4zJdvZonGJo9ajeOhiQk1i8HA3qz+v3Q7k1DEutgPrPUOpYXaNa9x358QmAxjWEIHXjUCFU4mLgkawSKAUbLkAKSrkz5C6fz9IaKokPzWaPXIobsIQY1r5lvX0eIHVJcR62LYXLd4fSk=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <87ve4id4rb.fsf@xxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <871w76ejdg.fsf@xxxxxxxxxxxxxxxxx> <87ve4id4rb.fsf@xxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Thu, Feb 21, 2008 at 5:43 PM, Markus Armbruster <armbru@xxxxxxxxxx> wrote:
>  Fix extracted from this linux-fbdev-devel message:

Hi Markus,

Yes, this was discussed back in November on linux-mm and hence my
patch. I didn't push for it to be merged by itself because I don't
think it makes sense to merge it separately from the full metronomefb
patch. As far as I can tell, only hecubafb and metronomefb seem to be
the consumers.

Out of curiosity, are you using defio or planning to use it? I would
love to hear back from people who are using it.

Thanks,
jaya

>
>     Subject: [PATCH 1/1 2.6.24] fbdev: defio and Metronomefb
>     From: Jaya Kumar <jayakumar.lkml@xxxxxxxxx>
>     Date: 2008-02-18 13:41:26
>
>  Signed-off-by: Jaya Kumar <jayakumar.lkml@xxxxxxxxx>
>  Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx>
>
>  ---
>
>   drivers/video/fb_defio.c |   22 ++++++++++++++++++++--
>   1 file changed, 20 insertions(+), 2 deletions(-)
>
>  diff --git a/drivers/video/fb_defio.c b/drivers/video/fb_defio.c
>  index 0f8cfb9..24843fd 100644
>  --- a/drivers/video/fb_defio.c
>  +++ b/drivers/video/fb_defio.c
>  @@ -4,7 +4,7 @@
>   *  Copyright (C) 2006 Jaya Kumar
>   *
>   * This file is subject to the terms and conditions of the GNU General Public
>  - * License.  See the file COPYING in the main directory of this archive
>  + * License. See the file COPYING in the main directory of this archive
>   * for more details.
>   */
>
>  @@ -31,7 +31,7 @@ static int fb_deferred_io_fault(struct vm_area_struct *vma,
>         unsigned long offset;
>         struct page *page;
>         struct fb_info *info = vma->vm_private_data;
>  -       /* info->screen_base is in System RAM */
>  +       /* info->screen_base is virtual memory */
>         void *screen_base = (void __force *) info->screen_base;
>
>         offset = vmf->pgoff << PAGE_SHIFT;
>  @@ -43,6 +43,15 @@ static int fb_deferred_io_fault(struct vm_area_struct 
> *vma,
>                 return VM_FAULT_SIGBUS;
>
>         get_page(page);
>  +
>  +       if (vma->vm_file)
>  +               page->mapping = vma->vm_file->f_mapping;
>  +       else
>  +               printk(KERN_ERR "no mapping available\n");
>  +
>  +       BUG_ON(!page->mapping);
>  +       page->index = vmf->pgoff;
>  +
>         vmf->page = page;
>         return 0;
>   }
>  @@ -138,11 +147,20 @@ EXPORT_SYMBOL_GPL(fb_deferred_io_init);
>
>   void fb_deferred_io_cleanup(struct fb_info *info)
>   {
>  +       void *screen_base = (void __force *) info->screen_base;
>         struct fb_deferred_io *fbdefio = info->fbdefio;
>  +       struct page *page;
>  +       int i;
>
>         BUG_ON(!fbdefio);
>         cancel_delayed_work(&info->deferred_work);
>         flush_scheduled_work();
>  +
>  +       /* clear out the mapping that we setup */
>  +       for (i = 0 ; i < info->fix.smem_len; i += PAGE_SIZE) {
>  +               page = vmalloc_to_page(screen_base + i);
>  +               page->mapping = NULL;
>  +       }
>   }
>   EXPORT_SYMBOL_GPL(fb_deferred_io_cleanup);
>
>

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel