From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ryan Riley Subject: Re: how to make xenbus do .probe? Date: Wed, 07 Mar 2007 13:03:30 -0500 Message-ID: <45EEFE72.6020707@purdue.edu> References: <45EDC042.8090003@purdue.edu> <45EDC185.4060302@purdue.edu> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------080805030805080902020809" Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Jian Wang Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------080805030805080902020809 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Attached you'll find a simple bash script illustrating how to get both the backend and frontend of the skeleton driver to fire. Here's how to use it: -Startup a Xen guest that contains your frontend driver, and be sure dom0 contains the backend driver. -Figure out the frontend-id for the guest. (I only have one guest so, the frontend-id is the number on the first line of `xenstore-ls /local/domain/0/backend/vbd`). Let's pretend that number is 3. -Run the script as so: ./probetest.sh mydevice 3 That should fire both probes. The only tricky things about the script are writing the states in the right order and changing the permissions of one of the xenstore keys. Thanks Ryan Jian Wang wrote: > It really works for backend!! > Thanks a lot. > But seems frontend .probe still not got called. > Could you tell me how to adjust the parameter to make the frontend do > probe? > -Jian > > > On 3/6/07, Ryan Riley wrote: >> Yeah, the wiki page you refer to in a later message is incorrect, but I >> think that the major thing wrong with it is the xenstore-write commands. >> (At the moment I don't have time to check whether the skeleton driver >> code is correct, and I can't remember if I had to tweak it when I went >> through what you're going through.) >> >> Here's 4 xenstore-write commands that should get a probe out of the >> device: >> >> xenstore-write /local/domain/5/device/mydevice/0/state 1 >> >> xenstore-write /local/domain/0/backend/mydevice/5/0/frontend-id 5 >> >> xenstore-write /local/domain/0/backend/mydevice/5/0/frontend >> /local/domain/5/device/mydevice/0 >> >> xenstore-write /local/domain/0/backend/mydevice/5/0/state 1 >> >> Quick note: That will only work once per boot, because once the driver >> is probed with frontend-id 5 the xenbus code seems to be smart enough to >> not do it again. If you need to make another probe happen during the >> same boot, just increment the 5 all around. I hope this helps. >> >> Thanks >> Ryan >> >> Jian Wang wrote: >> > Hi, >> > Can anyone please tell me how to get ".probe" function in "struct >> > xenbus_driver" called? >> > I want to do one simple test of event channel communication >> between >> > peer modules of >> > domU and dom0. >> > I wrote one backend and one frontend driver (I tried registered as >> > misc/blk/input device) where I put in all my xenbus routines, but >> > cannot get .probe called after insmod my module, I have put >> > one week's time to try to find the answer, failed. >> > >> > Thanks a lot! >> > -Jian >> > >> > >> >> >> --------------080805030805080902020809 Content-Type: text/plain; name="probetest.sh" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="probetest.sh" #!/bin/bash if [ $# != 2 ] then echo "Usage: $0 " else # Write backend information into the location the frontend will look # for it. xenstore-write /local/domain/${2}/device/${1}/0/backend-id 0 xenstore-write /local/domain/${2}/device/${1}/0/backend \ /local/domain/0/backend/${1}/${2}/0 # Write frontend information into the location the backend will look # for it. xenstore-write /local/domain/0/backend/${1}/${2}/0/frontend-id ${2} xenstore-write /local/domain/0/backend/${1}/${2}/0/frontend \ /local/domain/${2}/device/${1}/0 # Set the permissions on the backend so that the frontend can # actually read it. xenstore-chmod /local/domain/0/backend/${1}/${2}/0 r # Write the states. Note that the backend state must be written # last because it requires a valid frontend state to already be # written. xenstore-write /local/domain/${2}/device/${1}/0/state 1 xenstore-write /local/domain/0/backend/${1}/${2}/0/state 1 fi --------------080805030805080902020809 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------080805030805080902020809--