Bug 435158

Summary: PVFB fails because of missing xc_map_foreign_pages in libxenctrl.so compat library
Product: [Fedora] Fedora Reporter: Daniel Berrange <berrange>
Component: xennerAssignee: Gerd Hoffmann <kraxel>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: rawhideCC: berrange
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-02-27 16:37:33 EST Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 435059    
Description Flags
Workaround for missing xc_map_foreign_pages none

Description Daniel Berrange 2008-02-27 13:03:10 EST
Description of problem:
Configuring a Xenner guest with the PVFB activated, the qemu-dm process gets 1/2
way through the front/back device handshake and then aborts due to a missing
symbol. The log is

FB: Waiting for KBD backend creation
Doing backend watch on /local/domain/0/backend/vkbd/10272/0
FB: Waiting for FB backend creation
Doing backend watch on /local/domain/0/backend/vfb/10272/0
FB: Waiting for KBD frontend initialization
Doing frontend watch on /local/domain/10272/device/vkbd/0
FB: Carry on waiting
FB: Carry on waiting
FB: Carry on waiting
FB: Waiting for FB frontend initialization
Doing frontend watch on /local/domain/10272/device/vfb/0
Framebuffer depth 32 width 800 height 600 line 3200
/usr/lib64/xen/bin/qemu-dm: symbol lookup error: /usr/lib64/xen/bin/qemu-dm:
undefined symbol: xc_map_foreign_pages

NB, this was with 

export LD_LIBRARY_PATH=/usr/lib64/xenner 

To make it find Xenner's fake  libxenctrl.so

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
Actual results:

Expected results:

Additional info:
Comment 1 Daniel Berrange 2008-02-27 13:26:33 EST
This problem is caused by the new API in xen 3.2.0 - xenner's compat library
only implemnets the old API - should be easy enough to fixup

changeset:   15837:9071521d4864
user:        kfraser@localhost.localdomain
date:        Fri Sep 07 11:39:10 2007 +0100
files:       tools/ioemu/hw/cirrus_vga.c tools/ioemu/vl.c tools/libxc/xc_misc.c
tools/libxc/xenctrl.h tools/xenfb/xenfb.c
xc_map_foreign_pages(), a convenient alternative to xc_map_foreign_batch()

xc_map_foreign_batch() can succeed partially.  It is awkward to use
when you're only interested in complete success.  Provide new
xc_map_foreign_pages() convenience function for that kind of use.
Also convert two obvious calls to use it.

Signed-off-by: Markus Armbruster <armbru@redhat.com>

Comment 2 Daniel Berrange 2008-02-27 16:28:17 EST
Created attachment 296126 [details]
Workaround for missing xc_map_foreign_pages

This patch is a quick, minimal hack to deal with xc_map_foreign_pages.

It does not provide the failure case guarentees that the real libxc version of
this symbol does, but it is good enough to make the PVFB work in the normal
Comment 3 Daniel Berrange 2008-02-27 16:37:33 EST
I have built this patch into xenner-0.25-4.fc9