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   
Whiteboard:
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:
Bug Depends On:    
Bug Blocks: 435059    
Attachments:
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):
xenner-0.25

How reproducible:


Steps to Reproduce:
1.
2.
3.
  
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
description:
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
case.
Comment 3 Daniel Berrange 2008-02-27 16:37:33 EST
I have built this patch into xenner-0.25-4.fc9