view Documentation/usb/rio.txt @ 897:329ea0ccb344

balloon: try harder to balloon up under memory pressure.

Currently if the balloon driver is unable to increase the guest's
reservation it assumes the failure was due to reaching its full
allocation, gives up on the ballooning operation and records the limit
it reached as the "hard limit". The driver will not try again until
the target is set again (even to the same value).

However it is possible that ballooning has in fact failed due to
memory pressure in the host and therefore it is desirable to keep
attempting to reach the target in case memory becomes available. The
most likely scenario is that some guests are ballooning down while
others are ballooning up and therefore there is temporary memory
pressure while things stabilise. You would not expect a well behaved
toolstack to ask a domain to balloon to more than its allocation nor
would you expect it to deliberately over-commit memory by setting
balloon targets which exceed the total host memory.

This patch drops the concept of a hard limit and causes the balloon
driver to retry increasing the reservation on a timer in the same
manner as when decreasing the reservation.

Also if we partially succeed in increasing the reservation
(i.e. receive less pages than we asked for) then we may as well keep
those pages rather than returning them to Xen.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Fri Jun 05 14:01:20 2009 +0100 (2009-06-05)
parents 831230e53067
line source
1 Copyright (C) 1999, 2000 Bruce Tenison
2 Portions Copyright (C) 1999, 2000 David Nelson
3 Thanks to David Nelson for guidance and the usage of the scanner.txt
4 and scanner.c files to model our driver and this informative file.
6 Mar. 2, 2000
10 - Initial Revision
15 This README will address issues regarding how to configure the kernel
16 to access a RIO 500 mp3 player.
17 Before I explain how to use this to access the Rio500 please be warned:
19 W A R N I N G:
20 --------------
22 Please note that this software is still under development. The authors
23 are in no way responsible for any damage that may occur, no matter how
24 inconsequential.
26 It seems that the Rio has a problem when sending .mp3 with low batteries.
27 I suggest when the batteries are low and want to transfer stuff that you
28 replace it with a fresh one. In my case, what happened is I lost two 16kb
29 blocks (they are no longer usable to store information to it). But I don't
30 know if thats normal or not. It could simply be a problem with the flash
31 memory.
33 In an extreme case, I left my Rio playing overnight and the batteries wore
34 down to nothing and appear to have corrupted the flash memory. My RIO
35 needed to be replaced as a result. Diamond tech support is aware of the
36 problem. Do NOT allow your batteries to wear down to nothing before
37 changing them. It appears RIO 500 firmware does not handle low battery
38 power well at all.
40 On systems with OHCI controllers, the kernel OHCI code appears to have
41 power on problems with some chipsets. If you are having problems
42 connecting to your RIO 500, try turning it on first and then plugging it
43 into the USB cable.
45 Contact information:
46 --------------------
48 The main page for the project is hosted at sourceforge.net in the following
49 URL: <http://rio500.sourceforge.net>. You can also go to the project's
50 sourceforge home page at: <http://sourceforge.net/projects/rio500/>.
51 There is also a mailing list: rio500-users@lists.sourceforge.net
53 Authors:
54 -------
56 Most of the code was written by Cesar Miquel <miquel@df.uba.ar>. Keith
57 Clayton <kclayton@jps.net> is incharge of the PPC port and making sure
58 things work there. Bruce Tenison <btenison@dibbs.net> is adding support
59 for .fon files and also does testing. The program will mostly sure be
60 re-written and Pete Ikusz along with the rest will re-design it. I would
61 also like to thank Tri Nguyen <tmn_3022000@hotmail.com> who provided use
62 with some important information regarding the communication with the Rio.
64 ADDITIONAL INFORMATION and Userspace tools
66 http://rio500.sourceforge.net/
71 A host with a USB port. Ideally, either a UHCI (Intel) or OHCI
72 (Compaq and others) hardware port should work.
74 A Linux development kernel (2.3.x) with USB support enabled or a
75 backported version to linux-2.2.x. See http://www.linux-usb.org for
76 more information on accomplishing this.
78 A Linux kernel with RIO 500 support enabled.
80 'lspci' which is only needed to determine the type of USB hardware
81 available in your machine.
85 Using `lspci -v`, determine the type of USB hardware available.
87 If you see something like:
89 USB Controller: ......
90 Flags: .....
91 I/O ports at ....
93 Then you have a UHCI based controller.
95 If you see something like:
97 USB Controller: .....
98 Flags: ....
99 Memory at .....
101 Then you have a OHCI based controller.
103 Using `make menuconfig` or your preferred method for configuring the
104 kernel, select 'Support for USB', 'OHCI/UHCI' depending on your
105 hardware (determined from the steps above), 'USB Diamond Rio500 support', and
106 'Preliminary USB device filesystem'. Compile and install the modules
107 (you may need to execute `depmod -a` to update the module
108 dependencies).
110 Add a device for the USB rio500:
111 `mknod /dev/usb/rio500 c 180 64`
113 Set appropriate permissions for /dev/usb/rio500 (don't forget about
114 group and world permissions). Both read and write permissions are
115 required for proper operation.
117 Load the appropriate modules (if compiled as modules):
119 OHCI:
120 modprobe usbcore
121 modprobe usb-ohci
122 modprobe rio500
124 UHCI:
125 modprobe usbcore
126 modprobe usb-uhci (or uhci)
127 modprobe rio500
129 That's it. The Rio500 Utils at: http://rio500.sourceforge.net should
130 be able to access the rio500.
132 BUGS
134 If you encounter any problems feel free to drop me an email.
136 Bruce Tenison
137 btenison@dibbs.net