text:
[PATCH] drm: add developer documentation
From: Jesse Barnes <jbarnes@vi...> - 2009-10-26 21:06:50
Only took me a year to update this.  I'd like to land it now to make it
easier to work on.  Hopefully Thomas and Jerome can fill in some of the
TTM bits, and we can flesh out the GEM stuff.  The initialization
requirements are looking ok, but there's lots more documentation needed
about how to implement various output types, what core helpers are
available, etc.  Also, in order to include code references in the doc
itself, we need to convert things from doxygen to kdoc.  I have some
patches for that locally that I'll send out unless there's an objection.
From 2bfae6a8b6145ed59e3f05d8a1ce052007f90394 Mon Sep 17 00:00:00 2001
From: Jesse Barnes <jbarnes@...>
Date: Fri, 23 Oct 2009 02:53:40 -0700
Subject: [PATCH] drm: add DRM developer documentation
Add a DRM DocBook providing basic information about DRM interfaces, including
TTM, GEM, KMS and vblank infrastructure.  Intended to provide information to
new and existing developers about how to perform driver initialization,
implement mode setting and other DRM features.
Signed-off-by: Jesse Barnes <jbarnes@...>
Documentation/DocBook/Makefile |    2 +-
Documentation/DocBook/drm.tmpl |  839 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 840 insertions(+), 1 deletions(-)
create mode 100644 Documentation/DocBook/drm.tmpl
index ab8300f..6723aef 100644
@@ -14,7 +14,7 @@ DOCBOOKS := z8530book.xml mcabook.xml device-drivers.xml \
-	    tracepoint.xml media.xml
+	    tracepoint.xml media.xml drm.xml
diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl
index 0000000..7583dc7
+++ b/Documentation/DocBook/drm.tmpl
+	"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
+<book id="drmDevelopersGuide">
+    <title>Linux DRM Developer's Guide</title>
+      <year>2008-2009</year>
+      <holder>
+	Intel Corporation (Jesse Barnes &lt;jesse.barnes@...&gt;)
+      </holder>
+	The contents of this file may be used under the terms of the GNU
+	General Public License version 2 (the "GPL") as distributed in
+	the kernel source COPYING file.
+<toc></toc>
+  <!-- Introduction -->
+  <chapter id="drmIntroduction">
+      The Linux DRM layer contains code intended to support the needs
+      of complex graphics devices, usually containing programmable
+      pipelines well suited to 3D graphics acceleration.  Graphics
+      drivers in the kernel can make use of DRM functions to make
+      tasks like memory management, interrupt handling and DMA easier,
+      and provide a uniform interface to applications.
+      A note on versions: this guide covers features found in the DRM
+      tree, including the TTM memory manager, output configuration and
+      mode setting, and the new vblank internals, in addition to all
+      the regular features found in current kernels.
+      [Insert diagram of typical DRM stack here]
+  <!-- Internals -->
+  <chapter id="drmInternals">
+    <title>DRM Internals</title>
+      This chapter documents DRM internals relevant to driver authors
+      and developers working to add support for the latest features to
+      existing drivers.
+      First, we'll go over some typical driver initialization
+      requirements, like setting up command buffers, creating an
+      initial output configuration, and initializing core services.
+      Subsequent sections will cover core internals in more detail,
+      providing implementation notes and examples.
+      The DRM layer provides several services to graphics drivers,
+      many of them driven by the application interfaces it provides
+      through libdrm, the library that wraps most of the DRM ioctls.
+      These include vblank event handling, memory
+      management, output management, framebuffer management, command
+      submission &amp; fencing, suspend/resume support, and DMA
+      services.
+      The core of every DRM driver is struct drm_device.  Drivers
+      will typically statically initialize a drm_device structure,
+      then pass it to drm_init() at load time.
+  <!-- Internals: driver init -->
+    <title>Driver initialization</title>
+      Before calling the DRM initialization routines, the driver must
+      first create and fill out a struct drm_device structure.
+      static struct drm_driver driver = {
+	/* don't use mtrr's here, the Xserver or user space app should
+	 * deal with them for intel hardware.
+	.driver_features =
+	    DRIVER_USE_AGP | DRIVER_REQUIRE_AGP |
+	    DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_MODESET,
+	.load = i915_driver_load,
+	.unload = i915_driver_unload,
+	.firstopen = i915_driver_firstopen,
+	.lastclose = i915_driver_lastclose,
+	.preclose = i915_driver_preclose,
+	.save = i915_save,
+	.restore = i915_restore,
+	.device_is_agp = i915_driver_device_is_agp,
+	.get_vblank_counter = i915_get_vblank_counter,
+	.enable_vblank = i915_enable_vblank,
+	.disable_vblank = i915_disable_vblank,
+	.irq_preinstall = i915_driver_irq_preinstall,
+	.irq_postinstall = i915_driver_irq_postinstall,
+	.irq_uninstall = i915_driver_irq_uninstall,
+	.irq_handler = i915_driver_irq_handler,
+	.reclaim_buffers = drm_core_reclaim_buffers,
+	.get_map_ofs = drm_core_get_map_ofs,
+	.get_reg_ofs = drm_core_get_reg_ofs,
+	.fb_probe = intelfb_probe,
+	.fb_remove = intelfb_remove,
+	.fb_resize = intelfb_resize,
+	.master_create = i915_master_create,
+	.master_destroy = i915_master_destroy,
+	.debugfs_init = i915_debugfs_init,
+	.debugfs_cleanup = i915_debugfs_cleanup,
+	.gem_init_object = i915_gem_init_object,
+	.gem_free_object = i915_gem_free_object,
+	.gem_vm_ops = &amp;i915_gem_vm_ops,
+	.ioctls = i915_ioctls,
+		.open = drm_open,
+		.release = drm_release,
+		.ioctl = drm_ioctl,
+		.mmap = drm_mmap,
+		.poll = drm_poll,
+		.fasync = drm_fasync,
+		.compat_ioctl = i915_compat_ioctl,
+		.id_table = pciidlist,
+		.probe = probe,
+		.remove = __devexit_p(drm_cleanup_pci),
+	.desc = DRIVER_DESC,
+	.date = DRIVER_DATE,
+	.major = DRIVER_MAJOR,
+	.minor = DRIVER_MINOR,
+	.patchlevel = DRIVER_PATCHLEVEL,
+      In the example above, taken from the i915 DRM driver, the driver
+      sets several flags indicating what core features it supports.
+      We'll go over the individual callbacks in later sections.  Since
+      flags indicate which features your driver supports to the DRM
+      core, you need to set most of them prior to calling drm_init().  Some,
+      like DRIVER_MODESET can be set later based on user supplied parameters,
+      but that's the exception rather than the rule.
+      <title>Driver flags</title>
+	<term>DRIVER_USE_AGP</term>
+	    Driver uses AGP interface
+	<term>DRIVER_REQUIRE_AGP</term>
+	    Driver needs AGP interface to function.
+	<term>DRIVER_USE_MTRR</term>
+	    Driver uses MTRR interface for mapping memory.  Deprecated.
+	<term>DRIVER_PCI_DMA</term>
+	    Driver is capable of PCI DMA.  Deprecated.
+	<term>DRIVER_SG</term>
+	    Driver can perform scatter/gather DMA.  Deprecated.
+	<term>DRIVER_HAVE_DMA</term>
+	<listitem><para>Driver supports DMA.  Deprecated.</para></listitem>
+	<term>DRIVER_HAVE_IRQ</term><term>DRIVER_IRQ_SHARED</term>
+	    DRIVER_HAVE_IRQ indicates whether the driver has a IRQ
+	    handler, DRIVER_IRQ_SHARED indicates whether the device &amp;
+	    handler support shared IRQs (note that this is required of
+	    PCI drivers).
+	<term>DRIVER_DMA_QUEUE</term>
+	    If the driver queues DMA requests and completes them
+	    asynchronously, this flag should be set.  Deprecated.
+	<term>DRIVER_FB_DMA</term>
+	    Driver supports DMA to/from the framebuffer.  Deprecated.
+	<term>DRIVER_MODESET</term>
+	    Driver supports mode setting interfaces.
+      In this specific case, the driver requires AGP and supports
+      IRQs.  DMA, as we'll see, is handled by device specific ioctls
+      in this case.  It also supports the kernel mode setting APIs, though
+      unlike in the actual i915 driver source, this example unconditionally
+      exports KMS capability.
+  <!-- Internals: driver load -->
+    <title>Driver load</title>
+      In the previous section, we saw what a typical drm_driver
+      structure might look like.  One of the more important fields in
+      the structure is the hook for the load function.
+      	...
+      	.load = i915_driver_load,
+      The load function has many responsibilities: allocating a driver
+      private structure, specifying supported performance counters,
+      configuring the device (e.g. mapping registers &amp; command
+      buffers), initializing the memory manager, and setting up the
+      initial output configuration.
+      Note that the tasks performed at driver load time must not
+      conflict with DRM client requirements.  For instance, if user
+      level mode setting drivers are in use, it would be problematic
+      to perform output discovery &amp; configuration at load time.
+      Likewise, if pre-memory management aware user level drivers are
+      in use, memory management and command buffer setup may need to
+      be omitted.  These requirements are driver specific, and care
+      needs to be taken to keep both old and new applications and
+      libraries working.  The i915 driver supports the "modeset"
+      module parameter to control whether advanced features are
+      enabled at load time or in legacy fashion.  If compatibility is
+      a concern (e.g. with drivers converted over to the new interfaces
+      from the old ones), care must be taken to prevent incompatible
+      device initialization and control with the currently active
+      userspace drivers.
+      <title>Driver private &amp; performance counters</title>
+	The driver private hangs off the main drm_device structure and
+	can be used for tracking various device specific bits of
+	information, like register offsets, command buffer status,
+	register state for suspend/resume, etc.  At load time, a
+	driver can simply allocate one and set drm_device.dev_priv
+	appropriately; at unload the driver can free it and set
+	drm_device.dev_priv to NULL.
+	The DRM supports several counters which can be used for rough
+	performance characterization.  Note that the DRM stat counter
+	system is not often used by applications, and supporting
+	additional counters is completely optional.
+	These interfaces are deprecated and should not be used.  If performance
+	monitoring is desired, the developer should investigate and
+	potentially enhance the kernel perf and tracing infrastructure to export
+	GPU related performance information to performance monitoring
+	tools and applications.
+      <title>Configuring the device</title>
+	Obviously, device configuration will be device specific.
+	However, there are several common operations: finding a
+	device's PCI resources, mapping them, and potentially setting
+	up an IRQ handler.
+	Finding &amp; mapping resources is fairly straightforward.  The
+	DRM wrapper functions, drm_get_resource_start() and
+	drm_get_resource_len() can be used to find BARs on the given
+	drm_device struct.  Once those values have been retrieved, the
+	driver load function can call drm_addmap() to create a new
+	mapping for the BAR in question.  Note you'll probably want a
+	drm_local_map_t in your driver private structure to track any
+	mappings you create.
+<!-- !Fdrivers/gpu/drm/drm_bufs.c drm_get_resource_* -->
+<!-- !Finclude/drm/drmP.h drm_local_map_t -->
+	if compatibility with other operating systems isn't a concern
+	(DRM drivers can run under various BSD variants and OpenSolaris),
+	native Linux calls can be used for the above, e.g. pci_resource_*
+	and iomap*/iounmap.  See the Linux device driver book for more
+	Once you have a register map, you can use the DRM_READn() and
+	DRM_WRITEn() macros to access the registers on your device, or
+	use driver specific versions to offset into your MMIO space
+	relative to a driver specific base pointer (see I915_READ for
+	example).
+	If your device supports interrupt generation, you may want to
+	setup an interrupt handler at driver load time as well.  This
+	is done using the drm_irq_install() function.  If your device
+	supports vertical blank interrupts, it should call
+	drm_vblank_init() to initialize the core vblank handling code before
+	enabling interrupts on your device.  This ensures the vblank related
+	structures are allocated and allows the core to handle vblank events.
+<!--!Fdrivers/char/drm/drm_irq.c drm_irq_install-->
+	Once your interrupt handler is registered (it'll use your
+	drm_driver.irq_handler as the actual interrupt handling
+	function), you can safely enable interrupts on your device,
+	assuming any other state your interrupt handler uses is also
+	initialized.
+	Another task that may be necessary during configuration is
+	mapping the video BIOS.  On many devices, the VBIOS describes
+	device configuration, LCD panel timings (if any), and contains
+	flags indicating device state.  Mapping the BIOS can be done
+	using the pci_map_rom() call, a convenience function that
+	takes care of mapping the actual ROM, whether it has been
+	shadowed into memory (typically at address 0xc0000) or exists
+	on the PCI device in the ROM BAR.  Note that once you've
+	mapped the ROM and extracted any necessary information, be
+	sure to unmap it; on many devices the ROM address decoder is
+	shared with other BARs, so leaving it mapped can cause
+	undesired behavior like hangs or memory corruption.
+<!--!Fdrivers/pci/rom.c pci_map_rom-->
+      <title>Memory manager initialization</title>
+	In order to allocate command buffers, cursor memory, scanout
+	buffers, etc., as well as support the latest features provided
+	by packages like Mesa and the X.Org X server, your driver
+	should support a memory manager.
+	If your driver supports memory management (it should!), you'll
+	need to set that up at load time as well.  How you intialize
+	it depends on which memory manager you're using, TTM or GEM.
+	<title>TTM initialization</title>
+	  TTM (for Translation Table Manager) manages video memory and
+	  aperture space for graphics devices. TTM supports both UMA devices
+	  and devices with dedicated video RAM (VRAM), i.e. most discrete
+	  graphics devices.  If your device has dedicated RAM, supporting
+	  TTM is desireable.  TTM also integrates tightly with your
+	  driver specific buffer execution function.  See the radeon
+	  driver for examples.
+	  The core TTM structure is the ttm_bo_driver struct.  It contains
+	  several fields with function pointers for initializing the TTM,
+	  allocating and freeing memory, waiting for command completion
+	  and fence synchronization, and memory migration.  See the
+	  radeon_ttm.c file for an example of usage.
+	  The ttm_global_reference structure is made up of several fields:
+	  struct ttm_global_reference {
+	  	enum ttm_global_types global_type;
+	  	size_t size;
+	  	void *object;
+	  	int (*init) (struct ttm_global_reference *);
+	  	void (*release) (struct ttm_global_reference *);
+	  There should be one global reference structure for your memory
+	  manager as a whole, and there will be others for each object
+	  created by the memory manager at runtime.  Your global TTM should
+	  have a type of TTM_GLOBAL_TTM_MEM.  The size field for the global
+	  object should be sizeof(struct ttm_mem_global), and the init and
+	  release hooks should point at your driver specific init and
+	  release routines, which will probably eventually call
+	  ttm_mem_global_init and ttm_mem_global_release respectively.
+	  Once your global TTM accounting structure is set up and initialized
+	  (done by calling ttm_global_item_ref on the global object you
+	  just created), you'll need to create a buffer object TTM to
+	  provide a pool for buffer object allocation by clients and the
+	  kernel itself.  The type of this object should be TTM_GLOBAL_TTM_BO,
+	  and its size should be sizeof(struct ttm_bo_global).  Again,
+	  driver specific init and release functions can be provided,
+	  likely eventually calling ttm_bo_global_init and
+	  ttm_bo_global_release, respectively.  Also like the previous
+	  object, ttm_global_item_ref is used to create an initial reference
+	  count for the TTM, which will call your initalization function.
+	<title>GEM initialization</title>
+	  GEM is an alternative to TTM, designed specifically for UMA
+	  devices.  It has simpler initialization and execution requirements
+	  than TTM, but has no VRAM management capability.  Core GEM
+	  initialization is comprised of a basic drm_mm_init call to create
+	  a GTT DRM MM object, which provides an address space pool for
+	  object allocation.  In a KMS configuration, the driver will
+	  need to allocate and initialize a command ring buffer following
+	  basic GEM initialization.  Most UMA devices have a so-called
+	  "stolen" memory region, which provides space for the initial
+	  framebuffer and large, contiguous memory regions required by the
+	  device.  This space is not typically managed by GEM, and must
+	  be initialized separately into its own DRM MM object.
+	  Initialization will be driver specific, and will depend on
+	  the architecture of the device.  In the case of Intel
+	  integrated graphics chips like 965GM, GEM initialization can
+	  be done by calling the internal GEM init function,
+	  i915_gem_do_init().  Since the 965GM is a UMA device
+	  (i.e. it doesn't have dedicated VRAM), GEM will manage
+	  making regular RAM available for GPU operations.  Memory set
+	  aside by the BIOS (called "stolen" memory by the i915
+	  driver) will be managed by the DRM memrange allocator; the
+	  rest of the aperture will be managed by GEM.
+	    /* Basic memrange allocator for stolen space (aka vram) */
+	    drm_memrange_init(&amp;dev_priv->vram, 0, prealloc_size);
+	    /* Let GEM Manage from end of prealloc space to end of aperture */
+	    i915_gem_do_init(dev, prealloc_size, agp_size);
+<!--!Edrivers/char/drm/drm_memrange.c-->
+	  Once the memory manager has been set up, we can allocate the
+	  command buffer.  In the i915 case, this is also done with a
+	  GEM function, i915_gem_init_ringbuffer().
+      <title>Output configuration</title>
+	The final initialization task is output configuration.  This involves
+	finding and initializing the CRTCs, encoders and connectors
+	for your device, creating an initial configuration and
+	registering a framebuffer console driver.
+	<title>Output discovery and initialization</title>
+	  Several core functions exist to create CRTCs, encoders and
+	  connectors, namely drm_crtc_init(), drm_connector_init() and
+	  drm_encoder_init(), along with several "helper" functions to
+	  perform common tasks.
+	  Connectors should be registered with sysfs once they've been
+	  detected and initialized, using the
+	  drm_sysfs_connector_add() function.  Likewise, when they're
+	  removed from the system, they should be destroyed with
+	  drm_sysfs_connector_remove().
+void intel_crt_init(struct drm_device *dev)
+	intel_output = kzalloc(sizeof(struct intel_output), GFP_KERNEL);
+	if (!intel_output)
+	connector = &intel_output->base;
+	drm_connector_init(dev, &intel_output->base,
+			   &intel_crt_connector_funcs, DRM_MODE_CONNECTOR_VGA);
+	drm_encoder_init(dev, &intel_output->enc, &intel_crt_enc_funcs,
+			 DRM_MODE_ENCODER_DAC);
+	drm_mode_connector_attach_encoder(&intel_output->base,
+					  &intel_output->enc);
+	/* Set up the DDC bus. */
+	intel_output->ddc_bus = intel_i2c_create(dev, GPIOA, "CRTDDC_A");
+	if (!intel_output->ddc_bus) {
+		dev_printk(KERN_ERR, &dev->pdev->dev, "DDC bus registration "
+			   "failed.\n");
+	intel_output->type = INTEL_OUTPUT_ANALOG;
+	connector->interlace_allowed = 0;
+	connector->doublescan_allowed = 0;
+	drm_encoder_helper_add(&intel_output->enc, &intel_crt_helper_funcs);
+	drm_connector_helper_add(connector, &intel_crt_connector_helper_funcs);
+	drm_sysfs_connector_add(connector);
+	  In the example above (again, taken from the i915 driver), a
+	  CRT connector and encoder combination is created.  A device
+	  specific i2c bus is also created, for fetching EDID data and
+	  performing monitor detection.  Once the process is complete,
+	  the new connector is regsitered with sysfs, to make its
+	  properties available to applications.
+	<sect4>
+	  <title>Helper functions and core functions</title>
+	    Since many PC-class graphics devices have similar display output
+	    designs, the DRM provides a set of helper functions to make
+	    output management easier.  The core helper routines handle
+	    encoder re-routing and disabling of unused functions following
+	    mode set.  Using the helpers is optional, but recommended for
+	    devices with PC-style architectures (i.e. a set of display planes
+	    for feeding pixels to encoders which are in turn routed to
+	    connectors).  Devices with more complex requirements needing
+	    finer grained management can opt to use the core callbacks
+	    directly.
+	    [Insert typical diagram here.]  [Insert OMAP style config here.]
+	  For each encoder, CRTC and connector, several functions must
+	  be provided, depending on the object type.  Encoder objects
+	  need should provide a DPMS (basically on/off) function, mode fixup
+	  (for converting requested modes into native hardware timings),
+	  and prepare, set and commit functions for use by the core DRM
+	  helper functions.  Connector helpers need to provide mode fetch and
+	  validity functions as well as an encoder matching function for
+	  returing an ideal encoder for a given connector.  The core
+	  connector functions include a DPMS callback, (deprecated)
+	  save/restore routines, detection, mode probing, property handling,
+	  and cleanup functions.
+<!--!Edrivers/char/drm/drm_crtc.h-->
+<!--!Edrivers/char/drm/drm_crtc.c-->
+<!--!Edrivers/char/drm/drm_crtc_helper.c-->
+  <!-- Internals: vblank handling -->
+    <title>VBlank event handling</title>
+      The DRM core exposes two vertical blank related ioctls:
+      DRM_IOCTL_WAIT_VBLANK and DRM_IOCTL_MODESET_CTL.
+<!--!Edrivers/char/drm/drm_irq.c-->
+      DRM_IOCTL_WAIT_VBLANK takes a struct drm_wait_vblank structure
+      as its argument, and is used to block or request a signal when a
+      specified vblank event occurs.
+      DRM_IOCTL_MODESET_CTL should be called by application level
+      drivers before and after mode setting, since on many devices the
+      vertical blank counter will be reset at that time.  Internally,
+      the DRM snapshots the last vblank count when the ioctl is called
+      with the _DRM_PRE_MODESET command so that the counter won't go
+      backwards (which is dealt with when _DRM_POST_MODESET is used).
+      To support the functions above, the DRM core provides several
+      helper functions for tracking vertical blank counters, and
+      requires drivers to provide several callbacks:
+      get_vblank_counter(), enable_vblank() and disable_vblank().  The
+      core uses get_vblank_counter() to keep the counter accurate
+      across interrupt disable periods.  It should return the current
+      vertical blank event count, which is often tracked in a device
+      register.  The enable and disable vblank callbacks should enable
+      and disable vertical blank interrupts, respectively.  In the
+      absence of DRM clients waiting on vblank events, the core DRM
+      code will use the disable_vblank() function to disable
+      interrupts, which saves power.  They'll be re-enabled again when
+      a client calls the vblank wait ioctl above.
+      Devices that don't provide a count register can simply use an
+      internal atomic counter incremented on every vertical blank
+      interrupt, and can make their enable and disable vblank
+      functions into no-ops.
+    <title>Memory management</title>
+      The memory manager lies at the heart of many DRM operations, and
+      is also required to support advanced client features like OpenGL
+      pbuffers.  The DRM currently contains two memory managers, TTM
+      and GEM.
+      <title>The Translation Table Manager (TTM)</title>
+	TTM was developed by Tungsten Graphics, primarily by Thomas
+	Hellström, and is intended to be a flexible, high performance
+	graphics memory manager.
+	Drivers wishing to support TTM must fill out a drm_bo_driver
+	TTM design background and information belongs here.
+      <title>The Graphics Execution Manager (GEM)</title>
+	GEM is an Intel project, authored by Eric Anholt and Keith
+	Packard.  It provides simpler interfaces than TTM, and is well
+	suited for UMA devices.
+	GEM-enabled drivers must provide gem_init_object() and
+	gem_free_object() callbacks to support the core memory
+	allocation routines.  They should also provide several driver
+	specific ioctls to support command execution, pinning, buffer
+	read &amp; write, mapping, and domain ownership transfers.
+	On a fundamental level, GEM involves several operations: memory
+	allocation and freeing, command execution, and aperture management
+	at command execution time.  Buffer object allocation is relatively
+	straightforward and largely provided by Linux's shmem layer, which
+	provides memory to back each object.  When mapped into the GTT
+	or used in a command buffer, the backing pages for an object are
+	flushed to memory and marked write combined so as to be coherent
+	with the GPU.  Likewise, when the GPU finishes rendering to an object,
+	if the CPU accesses it, it must be made coherent with the CPU's view
+	of memory, usually involving GPU cache flushing of various kinds.
+	This core CPU&lt;-&gt;GPU coherency management is provided by the GEM
+	set domain function, which evaluates an object's current domain and
+	performs any necessary flushing or synchronization to put the object
+	into the desired coherency domain (note that the object may be busy,
+	i.e. an active render target; in that case the set domain function
+	will block the client and wait for rendering to complete before
+	performing any necessary flushing operations).
+	Perhaps the most important GEM function is providing a command
+	execution interface to clients.  Client programs construct command
+	buffers containing references to previously allocated memory objects
+	and submit them to GEM.  At that point, GEM will take care to bind
+	all the objects into the GTT, execute the buffer, and provide
+	necessary synchronization between clients accessing the same buffers.
+	This often involves evicting some objects from the GTT and re-binding
+	others (a fairly expensive operation), and providing relocation
+	support which hides fixed GTT offsets from clients.  Clients must
+	take care not to submit command buffers that reference more objects
+	than can fit in the GTT or GEM will reject them and no rendering
+	will occur.  Similarly, if several objects in the buffer require
+	fence registers to be allocated for correct rendering (e.g. 2D blits
+	on pre-965 chips), care must be taken not to require more fence
+	registers than are available to the client.  Such resource management
+	should be abstracted from the client in libdrm.
+  <!-- Output management -->
+    <title>Output management</title>
+      At the core of the DRM output management code is a set of
+      structures representing CRTCs, encoders and connectors.
+      A CRTC is an abstraction representing a part of the chip that
+      contains a pointer to a scanout buffer.  Therefore, the number
+      of CRTCs available determines how many independent scanout
+      buffers can be active at any given time.  The CRTC structure
+      contains several fields to support this: a pointer to some video
+      memory, a display mode, and an (x, y) offset into the video
+      memory to support panning or configurations where one piece of
+      video memory spans multiple CRTCs.
+      An encoder takes pixel data from a CRTC and converts it to a
+      format suitable for any attached connectors.  On some devices,
+      it may be possible to have a CRTC send data to more than one
+      encoder.  In that case, both encoders would receive data from
+      the same scanout buffer, resulting in a "cloned" display
+      configuration across the connectors attached to each encoder.
+      A connector is the final destination for pixel data on a device,
+      and usually connects directly to an external display device like
+      a monitor or laptop panel.  A connector can only be attached to
+      one encoder at a time.  The connector is also the structure
+      where information about the attached display is kept, so it
+      contains fields for display data, EDID data, DPMS &amp;
+      connection status, and information about modes supported on the
+      attached displays.
+    <title>Framebuffer management</title>
+      In order to set a mode on a given CRTC, encoder and connector
+      configuration, clients need to provide a framebuffer object which
+      will provide a source of pixels for the CRTC to deliver to the encoder(s)
+      and ultimately the connector(s) in the configuration.  A framebuffer
+      is fundamentally a driver specific memory object, made into an opaque
+      handle by the DRM addfb function.  Once an fb has been created this
+      way it can be passed to the KMS mode setting routines for use in
+      a configuration.
+    <title>Command submission &amp; fencing</title>
+      This should cover a few device specific command submission
+    <title>Suspend/resume</title>
+      The DRM core provides some suspend/resume code, but drivers
+      wanting full suspend/resume support should provide save() and
+      restore() functions.  These will be called at suspend,
+      hibernate, or resume time, and should perform any state save or
+      restore required by your device across suspend or hibernate
+      states.
+    <title>DMA services</title>
+      This should cover how DMA mapping etc. is supported by the core.
+      These functions are deprecated and should not be used.
+  <!-- External interfaces -->
+  <chapter id="drmExternals">
+    <title>Userland interfaces</title>
+      The DRM core exports several interfaces to applications,
+      generally intended to be used through corresponding libdrm
+      wrapper functions.  In addition, drivers export device specific
+      interfaces for use by userspace drivers &amp; device aware
+      applications through ioctls and sysfs files.
+      External interfaces include: memory mapping, context management,
+      DMA operations, AGP management, vblank control, fence
+      management, memory management, and output management.
+      Cover generic ioctls and sysfs layout here.  Only need high
+      level info, since man pages will cover the rest.
+  <!-- API reference -->
+  <appendix id="drmDriverApi">
+    <title>DRM Driver API</title>
+      Include auto-generated API reference here (need to reference it
+      from paragraphs above too).
2.6.32-rc5-git3: Reported regressions 2.6.30 -> 2.6.31
From: Rafael J. Wysocki <rjw@si...> - 2009-10-26 19:33:49
This message contains a list of some regressions introduced between 2.6.30 and
2.6.31, for which there are no fixes in the mainline I know of.  If any of them
If you know of any other unresolved regressions introduced between 2.6.30
and 2.6.31, please let me know either and I'll add them to the list.
2009-10-26      170       37          32
2009-10-12      161       45          35
2009-10-02      151       49          42
2009-09-06      123       34          27
2009-08-26      108       33          26
2009-08-20      102       32          29
2009-08-10       89       27          24
2009-08-02       76       36          28
2009-07-27       70       51          43
2009-07-07       35       25          21
2009-06-29       22       22          15
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14476
Subject		: Unable to handle kernel paging request in nfs_write_mapping
Submitter	: Stephan von Krawczynski <skraw@...>
Date		: 2009-10-14 9:53 (13 days old)
References	: http://marc.info/?l=linux-kernel&m=125551421405656&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14474
Subject		: restorecond going crazy on 2.6.31.4 - inotify regression?
Submitter	: Robert Hancock <hancockrwd@...>
Date		: 2009-10-16 0:03 (11 days old)
References	: http://marc.info/?l=linux-kernel&m=125565159520489&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14446
Subject		: battery status info broken/useless in 2.6.32-rc3 - MSI PR200 (possibly others, too)
Submitter	: Eddy Petrișor <eddy.petrisor+linbug@...>
Date		: 2009-10-20 08:25 (7 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14417
Subject		: [Regression] Wireless driver iwlagn+iwlcore doesn't work after resume (needs reloading)
Date		: 2009-10-16 11:07 (11 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14402
Subject		: Atheros ath9k module is not working with 2.6.31.1 on an Acer Extensa 7630EZ
Submitter	: Bernhard <berndl81@...>
Date		: 2009-10-14 11:17 (13 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14400
Subject		: disable/enable wlan broken with ath5k
Submitter	: Daniel Bumke <danielbumke@...>
Date		: 2009-10-13 12:35 (14 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14391
Subject		: use after free of struct powernow_k8_data
Submitter	: Michal Schmidt <mschmidt@...>
Date		: 2009-09-24 14:51 (33 days old)
References	: http://marc.info/?l=linux-kernel&m=125380383515615&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14388
Subject		: keyboard under X with 2.6.31
Submitter	: Frédéric L. W. Meunier <fredlwm@...>
Date		: 2009-10-07 20:19 (20 days old)
First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e043e42bdb66885b3ac10d27a01ccb9972e2b0a3
References	: http://marc.info/?l=linux-kernel&m=125494753228217&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14385
Subject		: DMAR regression in 2.6.31 leads to ext4 corruption?
Date		: 2009-10-08 23:56 (19 days old)
References	: http://marc.info/?l=linux-kernel&m=125504643703877&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14294
Subject		: kernel BUG at drivers/ide/ide-disk.c:187
Submitter	: Santiago Garcia Mantinan <manty@...>
Date		: 2009-09-30 11:05 (27 days old)
References	: http://marc.info/?l=linux-kernel&m=125430926311466&w=4
Handled-By	: David Miller <davem@...>
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14267
Subject		: Disassociating atheros wlan
Submitter	: Kristoffer Ericson <kristoffer.ericson@...>
Date		: 2009-09-24 10:16 (33 days old)
References	: http://marc.info/?l=linux-kernel&m=125378723723384&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14265
Subject		: ifconfig: page allocation failure. order:5, mode:0x8020 w/ e100
Submitter	: Karol Lewandowski <karol.k.lewandowski@...>
Date		: 2009-09-15 12:05 (42 days old)
References	: http://marc.info/?l=linux-kernel&m=125301636509517&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14257
Subject		: Not able to boot on 32 bit System
Submitter	: Rishikesh <risrajak@...>
Date		: 2009-09-21 15:25 (36 days old)
References	: http://marc.info/?l=linux-kernel&m=125354604314412&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14256
Subject		: kernel BUG at fs/ext3/super.c:435
Date		: 2009-09-21 7:29 (36 days old)
References	: http://marc.info/?l=linux-kernel&m=125351816109264&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14252
Subject		: WARNING: at include/linux/skbuff.h:1382 w/ e1000
Date		: 2009-09-20 11:26 (37 days old)
References	: http://marc.info/?l=linux-kernel&m=125344599006033&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14249
Subject		: BUG: oops in gss_validate on 2.6.31
Submitter	: Bastian Blank <bastian@...>
Date		: 2009-09-16 10:29 (41 days old)
References	: http://marc.info/?l=linux-kernel&m=125309700417283&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14248
Subject		: 2.6.31 wireless: WARNING: at net/wireless/ibss.c:34
Submitter	: Jurriaan <thunder8@...>
Date		: 2009-09-13 7:32 (44 days old)
References	: http://marc.info/?l=linux-kernel&m=125282721113553&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14204
Subject		: MCE prevent booting on my computer(pentium iii @500Mhz)
Submitter	: GNUtoo <GNUtoo@...>
Date		: 2009-09-21 20:36 (36 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14181
Subject		: b43 causes panic at ifconfig down / shutdown
Submitter	: Jeremy Huddleston <jeremyhu@...>
Date		: 2009-09-15 18:34 (42 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14157
Subject		: end_request: I/O error, dev cciss/cXdX, sector 0
Submitter	:  <jiri.harcarik@...>
Date		: 2009-09-11 07:42 (46 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14141
Subject		: order 2 page allocation failures in iwlagn
Date		: 2009-09-06 7:40 (51 days old)
First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2ff05b2b4eac2e63d345fc731ea151a060247f53
References	: http://marc.info/?l=linux-kernel&m=125222287419691&w=4
http://lkml.org/lkml/2009/10/2/86
http://lkml.org/lkml/2009/10/5/24
http://lkml.indiana.edu/hypermail/linux/kernel/0910.1/01395.html
Handled-By	: Pekka Enberg <penberg@...>
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14114
Subject		: Tuning a saa7134 based card is broken in kernel 2.6.31-rc7
Submitter	: Tsvety Petrov <Tsvetoslav.Petrov@...>
Date		: 2009-09-03 21:06 (54 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14090
Subject		: WARNING: at fs/notify/inotify/inotify_user.c:394
Submitter	: Joerg Platte <bugzilla@...>
Date		: 2009-08-30 15:21 (58 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14058
Subject		: Oops in fsnotify
Submitter	: Grant Wilson <grant.wilson@...>
Date		: 2009-08-20 15:48 (68 days old)
References	: http://marc.info/?l=linux-kernel&m=125078450923133&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=13987
Subject		: Received NMI interrupt at resume
Submitter	: Christian Casteyde <casteyde.christian@...>
Date		: 2009-08-15 07:55 (73 days old)
First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f41f3f373dd72344c65d801d6381fe83ef3a2c54
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=13943
Subject		: WARNING: at net/mac80211/mlme.c:2292 with ath5k
Submitter	: Fabio Comolli <fabio.comolli@...>
Date		: 2009-08-06 20:15 (82 days old)
References	: http://marc.info/?l=linux-kernel&m=124958978600600&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=13941
Subject		: x86 Geode issue
Submitter	: Martin-Éric Racine <q-funk@...>
Date		: 2009-08-03 12:58 (85 days old)
References	: http://marc.info/?l=linux-kernel&m=124930434732481&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=13906
Subject		: Huawei E169 GPRS connection causes Ooops
Submitter	: Clemens Eisserer <linuxhippy@...>
Date		: 2009-08-04 09:02 (84 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=13836
Subject		: suspend script fails, related to stdout?
Submitter	: Tomas M. <tmezzadra@...>
Date		: 2009-07-17 21:24 (102 days old)
References	: http://marc.info/?l=linux-kernel&m=124785853811667&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=13809
Subject		: oprofile: possible circular locking dependency detected
Submitter	: Jerome Marchand <jmarchan@...>
Date		: 2009-07-22 13:35 (97 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=13733
Subject		: 2.6.31-rc2: irq 16: nobody cared
Date		: 2009-07-06 18:32 (113 days old)
References	: http://marc.info/?l=linux-kernel&m=124690524027166&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=13645
Subject		: NULL pointer dereference at (null) (level2_spare_pgt)
Submitter	: poornima nayak <mpnayak@...>
Date		: 2009-06-17 17:56 (132 days old)
References	: http://lkml.org/lkml/2009/6/17/194
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14340
Subject		: speedstep-ich driver not working in 2.6.31
Submitter	:  <dave.mueller@...>
Date		: 2009-10-07 08:16 (20 days old)
Handled-By	: Eric Pielbug <e.a.b.piel@...>
Rusty Russell <rusty@...>
Patch		: http://patchwork.kernel.org/patch/54672/
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14258
Subject		: Memory leak in SCSI initialization
Submitter	: Tetsuo Handa <penguin-kernel@...>
Date		: 2009-09-22 4:18 (35 days old)
References	: http://marc.info/?l=linux-kernel&m=125359311312243&w=4
Handled-By	: Michael Ellerman <michael@...>
James Bottomley <James.Bottomley@...>
Patch		: http://patchwork.kernel.org/patch/51412/
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14253
Subject		: Oops in driversbasefirmware_class
Submitter	: Lars Ericsson <Lars_Ericsson@...>
Date		: 2009-09-16 20:44 (41 days old)
References	: http://lkml.org/lkml/2009/9/16/461
Handled-By	: Frederik Deweerdt <frederik.deweerdt@...>
Patch		: http://patchwork.kernel.org/patch/49914/
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14137
Subject		: usb console regressions
Submitter	: Jason Wessel <jason.wessel@...>
Date		: 2009-09-05 21:08 (52 days old)
References	: http://marc.info/?l=linux-kernel&m=125218501310512&w=4
Handled-By	: Jason Wessel <jason.wessel@...>
Patch		: http://patchwork.kernel.org/patch/45953/
http://patchwork.kernel.org/patch/45952/
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14017
Subject		: _end symbol missing from Symbol.map
Submitter	: Hannes Reinecke <hare@...>
Date		: 2009-08-13 6:45 (75 days old)
First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=091e52c3551d3031343df24b573b770b4c6c72b6
References	: http://marc.info/?l=linux-kernel&m=125014649102253&w=4
Handled-By	: Hannes Reinecke <hare@...>
Patch		: http://marc.info/?l=linux-kernel&m=125014649102253&w=4
between 2.6.30 and 2.6.31, unresolved as well as resolved, at:
http://bugzilla.kernel.org/show_bug.cgi?id=13615
2.6.32-rc5-git3: Reported regressions from 2.6.31
From: Rafael J. Wysocki <rjw@si...> - 2009-10-26 18:53:31
This message contains a list of some regressions from 2.6.31, for which there
If you know of any other unresolved regressions from 2.6.31, please let me know
2009-10-26       66       42          37
2009-10-12       48       31          27
2009-10-02       22       15           9
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14485
Subject		: System lockup running "cat /sys/kernel/debug/dri/0/i915_regs"
Date		: 2009-10-26 4:00 (1 days old)
References	: http://marc.info/?l=linux-kernel&m=125652968117713&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14484
Subject		: no video output after suspend
Submitter	: Riccardo Magliocchetti <riccardo.magliocchetti@...>
Date		: 2009-10-25 20:57 (2 days old)
References	: http://marc.info/?l=linux-kernel&m=125650430123713&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14483
Subject		: WARNING: at drivers/base/sys.c:353 __sysdev_resume+0x54/0xca()
Submitter	: Justin Mattock <justinmattock@...>
Date		: 2009-10-25 19:58 (2 days old)
References	: http://marc.info/?l=linux-kernel&m=125650070420168&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14482
Subject		: kernel BUG at fs/dcache.c:670 +lvm +md +ext3
Submitter	: Alexander Clouter <alex@...>
Date		: 2009-10-23 10:30 (4 days old)
References	: http://lkml.org/lkml/2009/10/23/50
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14481
Subject		: umount blocked for more than 120 seconds after USB drive removal
Date		: 2009-10-21 5:26 (6 days old)
References	: http://marc.info/?l=linux-kernel&m=125610280532245&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14479
Subject		: nfs oops
Submitter	: Egon Alter <egon.alter@...>
Date		: 2009-10-19 16:03 (8 days old)
References	: http://marc.info/?l=linux-kernel&m=125596822630410&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14477
Subject		: possible circular locking dependency in ISDN PPP
Submitter	: Tilman Schmidt <tilman@...>
Date		: 2009-10-18 22:16 (9 days old)
References	: http://marc.info/?l=linux-kernel&m=125590423416087&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14473
Subject		: ATA related kernel warning after resume
Submitter	: Tino Keitel <tino.keitel@...>
Date		: 2009-10-14 6:55 (13 days old)
References	: http://marc.info/?l=linux-kernel&m=125550466624678&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14472
Subject		: EXT4 corruption
Submitter	: Shawn Starr <shawn.starr@...>
Date		: 2009-10-13 2:07 (14 days old)
References	: http://marc.info/?l=linux-kernel&m=125539997508256&w=4
Handled-By	: Theodore Tso <tytso@...>
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14467
Subject		: Linker errors on ia64 with NR_CPUS=4096
Submitter	: Jeff Mahoney <jeffm@...>
Date		: 2009-10-18 22:28 (9 days old)
First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=34d76c41554a05425613d16efebb3069c4c545f0
References	: http://marc.info/?l=linux-kernel&m=125590493116720&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14466
Subject		: EFI boot on x86 fails in .32
Submitter	: Matthew Garrett <mjg59@...>
Date		: 2009-10-20 0:34 (7 days old)
First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7bd867dfb4e0357e06a3211ab2bd0e714110def3
References	: http://marc.info/?l=linux-kernel&m=125599887314290&w=4
Handled-By	: Feng Tang <feng.tang@...>
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14442
Subject		: resume after hibernate: /dev/sdb drops and returns as /dev/sde
Submitter	: Duncan <1i5t5.duncan@...>
Date		: 2009-10-20 01:52 (7 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14430
Subject		: sync() hangs in bdi_sched_wait
Submitter	: Petr Vandrovec <petr@...>
Date		: 2009-10-17 19:14 (10 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14415
Subject		: Reboot on kernel load
Submitter	: Brian Beardall <brian@...>
Date		: 2009-10-15 23:57 (12 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14408
Subject		: sysctl check failed
Submitter	: Peter Teoh <htmldeveloper@...>
Date		: 2009-10-14 22:59 (13 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14406
Subject		: uvcvideo stopped work on Toshiba
Submitter	: okias <d.okias@...>
Date		: 2009-10-14 19:08 (13 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14390
Subject		: "bind" a device to a driver doesn't not work anymore
Submitter	: Éric Piel <Eric.Piel@...>
Date		: 2009-10-11 0:04 (16 days old)
References	: http://marc.info/?l=linux-kernel&m=125521979921241&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14389
Subject		: Build system issue
Submitter	: Peter Zijlstra <peterz@...>
Date		: 2009-10-09 8:58 (18 days old)
First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=575543347b5baed0ca927cb90ba8807396fe9cc9
References	: http://marc.info/?l=linux-kernel&m=125507914909152&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14387
Subject		: deadlock with fallocate
Submitter	: Thomas Neumann <tneumann@...>
Date		: 2009-10-07 3:00 (20 days old)
References	: http://marc.info/?l=linux-kernel&m=125488495526471&w=4
Handled-By	: Christoph Hellwig <hch@...>
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14384
Subject		: tbench regression with 2.6.32-rc1
Submitter	: Zhang, Yanmin <yanmin_zhang@...>
Date		: 2009-10-09 9:51 (18 days old)
First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=59abf02644c45f1591e1374ee7bb45dc757fcb88
References	: http://marc.info/?l=linux-kernel&m=125508216713138&w=4
Handled-By	: Peter Zijlstra <a.p.zijlstra@...>
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14383
Subject		: hackbench regression with kernel 2.6.32-rc1
Date		: 2009-10-09 9:19 (18 days old)
First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=29cd8bae396583a2ee9a3340db8c5102acf9f6fd
References	: http://marc.info/?l=linux-kernel&m=125508007510274&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14381
Subject		: iwlagn lost connection after s2ram (with warnings)
Submitter	: Carlos R. Mafra <crmafra2@...>
Date		: 2009-10-07 14:20 (20 days old)
References	: http://marc.info/?l=linux-kernel&m=125492569119947&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14378
Subject		: Problems with net/core/skbuff.c
Submitter	: Massimo Cetra <mcetra@...>
Date		: 2009-10-08 14:51 (19 days old)
References	: http://marc.info/?l=linux-kernel&m=125501488220358&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14376
Subject		: Kernel NULL pointer dereference/ kvm subsystem
Submitter	: Don Dupuis <dondster@...>
Date		: 2009-10-06 14:38 (21 days old)
References	: http://marc.info/?l=linux-kernel&m=125484025021737&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14373
Subject		: Task blocked for more than 120 seconds
Submitter	: Zeno Davatz <zdavatz@...>
Date		: 2009-10-02 10:16 (25 days old)
References	: http://marc.info/?l=linux-kernel&m=125447858618412&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14372
Subject		: ath5k wireless not working after suspend-resume - eeepc
Date		: 2009-10-03 15:36 (24 days old)
References	: http://lkml.org/lkml/2009/10/3/91
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14355
Subject		: USB serial regression after 2.6.31.1 with Huawei E169 GSM modem
Date		: 2009-10-10 03:07 (17 days old)
References	: http://marc.info/?l=linux-kernel&m=125513456327542&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14354
Subject		: Bad corruption with 2.6.32-rc1 and upwards
Submitter	: Holger Freyther <zecke@...>
Date		: 2009-10-09 15:42 (18 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14353
Subject		: BUG: sleeping function called from invalid context at kernel/mutex.c:280
Date		: 2009-10-05 3:39 (22 days old)
References	: http://marc.info/?l=linux-kernel&m=125471432208671&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14352
Subject		: WARNING: at net/mac80211/scan.c:267
Submitter	: Maciej Rutecki <maciej.rutecki@...>
Date		: 2009-10-08 00:30 (19 days old)
References	: http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2089#c7
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14334
Subject		: pcmcia suspend regression from 2.6.31.1 to 2.6.31.2 - Dell Inspiron 600m
Submitter	: Jose Marino <braket@...>
Date		: 2009-10-06 15:44 (21 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14331
Subject		: Radeon XPRESS 200M: System hang with radeon DRI and Fedora 10 userspace unless DRI=off
Submitter	: Alex Villacis Lasso <avillaci@...>
Date		: 2009-10-06 00:29 (21 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14299
Subject		: oops in wireless, iwl3945 related?
Submitter	: Pavel Machek <pavel@...>
Date		: 2009-09-29 17:12 (28 days old)
References	: http://marc.info/?l=linux-kernel&m=125424439725743&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14298
Subject		: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
Date		: 2009-09-30 20:07 (27 days old)
References	: http://marc.info/?l=linux-kernel&m=125434130703538&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14297
Subject		: console resume broken since ba15ab0e8d
Submitter	: Sascha Hauer <s.hauer@...>
Date		: 2009-09-30 15:11 (27 days old)
References	: http://marc.info/?l=linux-kernel&m=125432349404060&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14296
Subject		: spitz boots but suspend/resume is broken
Date		: 2009-09-30 12:06 (27 days old)
References	: http://marc.info/?l=linux-kernel&m=125431244516449&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14277
Subject		: Caught 8-bit read from freed memory in b43 driver at association
Date		: 2009-09-30 18:06 (27 days old)
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14480
Subject		: 2 locks held by cat -- running "find /sys | head -c 4" --> system hang
Date		: 2009-10-20 16:11 (7 days old)
References	: http://marc.info/?l=linux-kernel&m=125605511728088&w=4
Handled-By	: Chris Wilson <chris@...>
Patch		: http://patchwork.kernel.org/patch/54974/
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14380
Subject		: Video tearing/glitching with T400 laptops
Submitter	: Theodore Ts'o <tytso@...>
Date		: 2009-10-02 22:40 (25 days old)
References	: http://marc.info/?l=linux-kernel&m=125452324520623&w=4
Patch		: http://marc.info/?l=linux-kernel&m=125591495325000&w=4
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14379
Subject		: ACPI Warning for _SB_.BAT0._BIF: Converted Buffer to expected String
Date		: 2009-10-08 21:46 (19 days old)
First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d9adc2e031bd22d5d9607a53a8d3b30e0b675f39
References	: http://marc.info/?l=linux-kernel&m=125504031328941&w=4
Patch		: http://bugzilla.kernel.org/attachment.cgi?id=23347
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14375
Subject		: Intel(R) I/OAT DMA Engine init failed
Submitter	: Alexander Beregalov <a.beregalov@...>
Date		: 2009-10-02 9:46 (25 days old)
References	: http://marc.info/?l=linux-kernel&m=125447680016160&w=4
Patch		: http://patchwork.kernel.org/patch/51808/
Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=14302
Subject		: Kernel panic on i386 machine when booting with profile=2
Submitter	: Shi, Alex <alex.shi@...>
Date		: 2009-10-01 3:23 (26 days old)
References	: http://marc.info/?l=linux-kernel&m=125436749607199&w=4
Handled-By	: Alex Shi <alex.shi@...>
Patch		: http://patchwork.kernel.org/patch/50813/
There also is a Bugzilla entry used for tracking the regressions from 2.6.31,
http://bugzilla.kernel.org/show_bug.cgi?id=14230
Re: modeset repo
From: Alex Deucher <alexdeucher@gm...> - 2009-10-26 16:30:39
On Mon, Oct 26, 2009 at 12:24 PM, James Simmons <jsimmons@...> wrote:
> What is the git path for the mdoeset repo. I have some patches I like to
Most patches go through Dave's drm-next tree:
http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=shortlog;h=refs/heads/drm-next
modeset repo
From: James Simmons <jsimmons@in...> - 2009-10-26 16:24:51
What is the git path for the mdoeset repo. I have some patches I like to
[Bug 24734] New: Changes in Mesa prevent Gnome desktop (with Compiz)
from starting normaly
From: <bugzilla-daemon@fr...> - 2009-10-26 14:09:29
http://bugs.freedesktop.org/show_bug.cgi?id=24734
Summary: Changes in Mesa prevent Gnome desktop (with Compiz) from
starting normaly
ReportedBy: pvelkovski@...
I believe there was a bug introduced in Mesa recently.
This is history log from synaptic package manager upgrade that broke my system:
libgl1-mesa-dri (7.7.0~git20091023.68372274-0ubuntu0tormod~jaunty2) to
7.7.0~git20091024.94a63dcc-0ubuntu0tormod~jaunty
libgl1-mesa-glx (7.7.0~git20091023.68372274-0ubuntu0tormod~jaunty2) to
libglu1-mesa (7.7.0~git20091023.68372274-0ubuntu0tormod~jaunty2) to
mesa-common-dev (7.7.0~git20091023.68372274-0ubuntu0tormod~jaunty2) to
mesa-utils (7.7.0~git20091023.68372274-0ubuntu0tormod~jaunty2) to
The package list is Ubuntu specific, but the version of the packages should
give you information about when was the bug introduced.
This is description of my system behavior:
The system boots properly. X.org is loaded and login screen is presented. After
entering the username and password in the login screen, Gnome desktop fails to
start and the login screen is shown once again.
I use compiz so I presume the problem is in dri.
Re: Changing radeon KMS cs+gem ioctl to merge read & write domain
From: Jerome Glisse <glisse@fr...> - 2009-10-26 09:40:33
On Mon, 2009-10-26 at 12:12 +1000, Dave Airlie wrote:
> On Thu, Oct 22, 2009 at 8:49 AM, Jerome Glisse <glisse@...> wrote:
> > I think we should merge the read & write domain of radeon KMS
> > into a single domains information. I don't think there is a
> > good reason for separate read & write domain, we did copy intel
> > model for that and intel use this mostly for cache coherency &
> > cache flushing as far as i understand. We make no good use of
> > this inside the kernel. In order to make this change less disruptive
> > and easier to introduce i propose we keep libdrm-radeon api
> > intact thus userspace xf86video-ati & mesa 3d driver doesn't
> > need a single line patch to adapt. Attached is a proof of concept,
> > a patch against libdrm which merge read & write domain and only
> > use the read domain to communicate with the kernel. I am still
> > in process of stress testing this patch but so far neither X
> > or 3D had any glitches.
> Can you list the advantages (speed, complexity reduction)?, I really
> really don't like this patch at this point in the development process,
> yes the API has warts does fixing it now help any or just increase
> the chance of regressions.
> Like I don't think we've hit any of the limitations yet, and I suspect
> the API limitations we hit will require a new revision of the API, which
> I'd rather do once, than just hack away functionality because the current
> underlying implementation doesn't use it yet.
> I'd really like to use the read/write information to help decide VRAM/GTT
> migration priorities in the future, I've mentioned this a few times and I've
> haven't heard how your scheme addresses this.
New API gives opportunity to give a list of prefered placement, this
would be a lot better than read/write. Userspace has better view of
what is the usage of a buffer (used one frame ? big texture used
several frame ? big texture of which only few texel will be use ? ...)
Read/Write domain fails to transmit any such information to the kernel.
> Some issues I can see are you haven't really defined how userspace
> users of this API should look, like who decides the buffer placement?
> userspace only? can the kernel override? how does the kernel know
> which allocs it can override and which it can't? how does space
> checking work for the VRAM but maybe GTT buffers?
Userspace decide list of placement and kernel can't override it, it
has to pick one placement in the list (mostly because of PPC and vertex
buffer & swap utility). So this doesn't change from what we have, right
now only read buffer can be in vram or gtt.
For space checking, it works pretty much as it does now, we got 2 pool
vram+gtt when a new buffer comes in you check if there is enough room
for it in any of the pool it's valid to put it in. If there isn't enough
then you ask for flush. You first pick the prefered pool and decrease
it if enough space, if not then try second pool if any.
> I don't think the API we have is perfect by any means I just don't think
> investing in tweaking the corners for no real benefit is worth it. Just
> make the gallium winsys API clean and then you don't need to look
> at this stuff, and in a year or two a new API that actually provides benefits
> and speedups after we've learned a bit from this one.
My fear here is that we will have to support 3 different API (old DRI1,
KMS CS+read/write, KMS CS+newapi). It's painful, of course we could
always let the code rot and don't touch it once it works.
GPU are really different from other HW we don't have a "simple" high
level common API we can't export to userspace (like network or anyother
device i am aware of) :(.
2.6.32-rc5-git3 -- System lockup running "cat
/sys/kernel/debug/dri/0/i915_regs"
From: Miles Lane <miles.lane@gm...> - 2009-10-26 04:01:07
(Sorry for the duplication to LKML.  I accidentally sent the previous
message before adding the DRI folks.)
When I run "cat /sys/kernel/debug/dri/0/i915_regs", my laptop
immediately locks up.
I do not have a second computer to establish a debugging connection with.
# Linux kernel version: 2.6.32-rc5-git3
# Sun Oct 25 19:46:46 2009
CONFIG_MAC80211_RC_DEFAULT="minstrel"
Re: [PATCH] drm/radeon/kms: add support for msi
From: Dave Airlie <airlied@gm...> - 2009-10-26 03:35:27
On Sat, Oct 17, 2009 at 2:26 AM, Alex Deucher <alexdeucher@...> wrote:
> From 482ec0ac012a8e4ca535ee50fc96305a1f11f43a Mon Sep 17 00:00:00 2001
> From: Alex Deucher <alexdeucher@...>
> Date: Fri, 16 Oct 2009 12:21:24 -0400
> Subject: [PATCH] drm/radeon/kms: add support for msi
> Try to enable msi on chips that support it.
Queued for Linus.
On Tue, Oct 20, 2009 at 3:01 AM, Alex Deucher <alexdeucher@...> wrote:
> First one fixes the CS parser for large textures, second one adds a
> quirk for tv-out on the acer 5102.
Re: [PATCHES] radeon drm updates
From: Dave Airlie <airlied@gm...> - 2009-10-26 03:34:44
On Thu, Oct 22, 2009 at 4:51 AM, Alex Deucher <alexdeucher@...> wrote:
> A bunch of radeon drm patches from my local queue.
First 4 applied to send to Linus, the last one I'm leaving in drm-next
since I hate freelist
and it always seems fragile.
Re: [PATCH] drm/radeon/kms/r7xx: add regs for 40 bit CUR/GRPH addresses
From: Dave Airlie <airlied@gm...> - 2009-10-26 03:34:11
On Fri, Oct 23, 2009 at 6:16 AM, Alex Deucher <alexdeucher@...> wrote:
> From a8a7d447d4f781670a849e345f5f31edb975c397 Mon Sep 17 00:00:00 2001
> Date: Thu, 22 Oct 2009 16:12:34 -0400
> Subject: [PATCH] drm/radeon/kms/r7xx: add regs for 40 bit CUR/GRPH addresses
> The *_HIGH regs are reversed. The secondary ones are in the
> primary block and vice versa.
> We currently only use a 32 bit internal address, so these are
> 0 for now.
Applied to drm-linus for sending under staging rules.
Re: [PATCH] drm: Add async event synchronization for drmWaitVblank
From: Dave Airlie <airlied@gm...> - 2009-10-26 03:33:34
On Thu, Oct 15, 2009 at 7:48 AM, Jesse Barnes <jbarnes@...> wrote:
> On Wed, 14 Oct 2009 14:47:22 -0700
> Jesse Barnes <jbarnes@...> wrote:
>> On Fri, 11 Sep 2009 14:33:34 -0400
>> "Kristian Høgsberg" <krh@...> wrote:
>> > This patch adds a new flag to the drmWaitVblank ioctl, which asks
>> > the drm to return immediately and notify userspace when the
>> > specified vblank sequence happens by sending an event back on the
>> > drm fd.
>> > The event mechanism works with the other flags supported by the
>> > ioctls, specifically, the vblank sequence can be specified
>> > relatively or absolutely, and works for primary and seconday crtc.
>> > The signal field of the vblank request is used to provide user data,
>> > which will be sent back to user space in the vblank event.
>> > Signed-off-by: Kristian Høgsberg <krh@...>
>> This one's been acked, would be good to get into drm-next so we can
>> start pushing stuff that uses it into master of the various repos.
> Oops forgot to cc Dave.
Finally applied to drm-next.
From: Dave Airlie <airlied@gm...> - 2009-10-26 02:12:34
On Thu, Oct 22, 2009 at 8:49 AM, Jerome Glisse <glisse@...> wrote:
> I think we should merge the read & write domain of radeon KMS
> into a single domains information. I don't think there is a
> good reason for separate read & write domain, we did copy intel
> model for that and intel use this mostly for cache coherency &
> cache flushing as far as i understand. We make no good use of
> this inside the kernel. In order to make this change less disruptive
> and easier to introduce i propose we keep libdrm-radeon api
> intact thus userspace xf86video-ati & mesa 3d driver doesn't
> need a single line patch to adapt. Attached is a proof of concept,
> a patch against libdrm which merge read & write domain and only
> use the read domain to communicate with the kernel. I am still
> in process of stress testing this patch but so far neither X
> or 3D had any glitches.
Can you list the advantages (speed, complexity reduction)?, I really
really don't like this patch at this point in the development process,
yes the API has warts does fixing it now help any or just increase
the chance of regressions.
Like I don't think we've hit any of the limitations yet, and I suspect
the API limitations we hit will require a new revision of the API, which
I'd rather do once, than just hack away functionality because the current
underlying implementation doesn't use it yet.
I'd really like to use the read/write information to help decide VRAM/GTT
migration priorities in the future, I've mentioned this a few times and I've
haven't heard how your scheme addresses this.
Some issues I can see are you haven't really defined how userspace
users of this API should look, like who decides the buffer placement?
userspace only? can the kernel override? how does the kernel know
which allocs it can override and which it can't? how does space
checking work for the VRAM but maybe GTT buffers?
I don't think the API we have is perfect by any means I just don't think
investing in tweaking the corners for no real benefit is worth it. Just
make the gallium winsys API clean and then you don't need to look
at this stuff, and in a year or two a new API that actually provides benefits
and speedups after we've learned a bit from this one.

value: This website is a web service that offers software consumers a centralized online location to control and manage open-source software projects and research business software. It provides source code repository hosting, bug tracking, mirroring of downloads for load balancing, a wiki for documentation, developer and user mailing lists, user-support forums, user-written reviews and ratings, a news bulletin, micro-blog for publishing project updates, and other features.


text:
GWT JSNI javascript to Java not working - Stack Overflow
1 I am trying to invoke a Java Method from my Javascript code. This is for a Windows Phone 7 app using Phonegap.
I have the following in my javascript code.
And in my Java code I have the following.
$wnd.onBackKeyDown =
$entry(this.@com.mycompany.myapp.client.MyApp::hideSettingsWidgets());
Then in the on onModuleLoad() I am calling it like so:
MyApp.exportStaticMethod();
It does not work I have an alert in the hideSettingsWidgets() but it never gets shown.
Here is some more code. The EventListener is not added in the Javascript. It is specifically added withing the java code. I could not get the listeners to register originally so here is what I added.
public static native void removeBackListener() /*-{
$wnd.removeTheListener();
function removeTheListener(){
document.removeEventListener("backbutton", onBackKeyDown, false);
Here is my call to hideSettingsWidgets()
public void hideSettingsWidgets(){
for(int i=0;i<settingsScreenWidgets.length;i++){
settingsScreenWidgets[i].setVisible(false);
alertString("Working");
removeBackListener();
And I am calling the method you gave me inside showSettingsWidgets()
rivate void showSettingsWidgets(){
settingsScreenWidgets[i].setVisible(true);
setOnOffImage();
setupJavaHandler();
It does seem to be adding the EventListener that is inside your
public native void setupJavaHandler() /*-{
var onBackKeyDown = $entry(function() {
app.@com.mycompany.myapp.client.MyApp::hideSettingsWidgets();
$doc.addEventListener("backbutton", onBackKeyDown, false);
So I am not sure where I am going wrong. I did not add the ArrayList<> you mentioned because was not sure to and the Event Listener was not running when page was Loaded.
Seems like showSettingsWidgets() never gets run
gwt jsni share|improve this question edited Mar 31 '12 at 2:52
asked Mar 30 '12 at 23:57
85531641
The addEventListener code is probably running when the page loads, right? This will map your empty function onBackKeyDown to the backbutton event. Then, when your module loads, you attempt to redefine the onBackKeyDown function to be a new one - but the old one was already attached to the event you are trying to listen to.
This is roughly the equivalent of this (with strings instead of listener functions):
// first, make the thing to hold the 'listener', and define the first one
String onBackKeyDown = "abcd";
strings.add(onBackKeyDown);
// then, redefine the string, but don't change the list!
onBackKeyDown = "zyxw";
assert strings.contains(onBackKeyDown) : "Whoops, reassigned, but not added!";
To fix this, you need a cross between what you are doing in your other question, Adding Eventlisteners to document with GWT JSNI, and what you are doing here. Wrapping the Java function in an $entry call, and passing that to $doc.addEventListener makes the most logical sense (though I don't know a lot about WP7).
public static native void setupJavaHandler() /*-{
var onBackKeyDown = $entry(this.@com.mycompany.myapp.client.MyApp::hideSettingsWidgets());
One more thing - remembering that we are writing JavaScript in that native code, what is going to be this when that hideSettingsWidgets() method is called? JavaScript doesn't know that all Java instance methods need a this to run on (and JavaScript has no problem running methods for object A on B - A.method.call(B) is totally legal, and often helpful). We need to be sure that this means what we think it does:
Edit: Oops, turns out your method was static anyway, so this doesn't actually mean anything! Either change exportStaticMethod/setupJavaHandler to be non static and call it directly (probably in your onModuleLoad as you have it now), or pass in an instance to call hideSettingsWidgets() on, like we are doing with app in the previous sample.
// in onModuleLoad:
public static native void setupJavaHandler(MpApp app) /*-{
//var app = this;
MyApp.setupJavaHandler(this);
share|improve this answer edited Mar 31 '12 at 1:11
Hi. The addEventListener code is not added or running when the page loads it is specifically added in the java code. I also remove it by calling a javascript function. I have added my relevant code above. Thanks for the help.
Also just to be sure do I still need the empty onBackKeyDown function in my hosted html page?
It must be working right. I downloaded GWT Phonegap and it is doing the same thing. I would not be surprised if IE on mobile does not support JSNI fully.
Hi I have confirmed it was an issue with GWT JSNI. I made a plain HTML5 app and the 'backbutton' code is working right. Thanks for the help.
I'm not quite sure how your GWT app integrates with Phonegap, but if it is running locally on the browser (rather than loaded from a server) you need to make sure GWT is using the ie6 user agent target.
GWT JSNI BOOLEAN 2
GWT: Catch native JSNI exception in Java code
GWT Highcharts calling Javascript using JSNI

type: global

value: This website is a question and answer website for professional and enthusiast programmers. It is the flagship site of the Stack Exchange Network, created in 2008 by Jeff Atwood and Joel Spolsky.


text:
ruby on rails - Slow Client connection blocks Mongrel - Stack Overflow
1 I have a Apache + Haproxy + Mongrel setup for my rails application. When I hit a particular server page, mongrel takes around 100ms to process the request and I get the page in around 5 secs due to data transmission time on my slow home connection. Now I see that during these 5 secs of data transmission, mongrel does not serve any other request. I am surprised as that means mongrel is serving the response html to the client and is blocked till the client receives it. Shouldn't serving response be the job of Apache? This puts serious bottleneck in the no of requests Mongrel can serve as that would depend on the speed of the client connection. Is there any way that html generated by mongrel is served by apache/haproxy or any other web server like nginx?
I wonder how the other high traffic sites are managing it?
ruby-on-rails apache mongrel share|improve this question asked May 11 '09 at 20:36
Most sites that use mongrel use lots of them as they do block like you are experiencing.
You'll probably want to look into passenger instead as it is they way to go these days.
share|improve this answer answered May 11 '09 at 22:21
7,19494877
mongrel itself is multi-threaded, but rails can process only one process at a time by default, although this can be changed by config. In case of mongrel, use mongrel-cluster. FYI passenger also sets up a pool of applications but it is nicer to deploy, has better press and is more popular right now.
share|improve this answer answered Jun 14 '10 at 10:37
I am not sure if I understood "rails can process only one process at a time". I know that 1 instance of mongrel would only serve 1 rails request. So for concurrent processing of 5 requests, I need to run 5 mongrel instances. Same for passenger, increase the no of threads.
sorry meant to say "rails can process only one request at a time" - not "only one process"
Not the answer you're looking for?	Browse other questions tagged ruby-on-rails apache mongrel or ask your own question.	asked


text:
Schleich Figurines Set - Deer Family - Walmart.com
SchleichAnimal FigurinesAnimals & FiguresThomas Children's Toys
Online $9.40Was: $11.99
Show this number 0400508602244 to a Walmart associate
Each piece of the Schleich Figurine Set Deer Family is hand-painted and crafted with unsurpassed detail to create a natural and realistic look. Schleich figurines are produced with non-toxic, vegetable-based inks to ensure the highest level of safety for children. This deer figurine set will promote imaginative play and creativity. These hand-painted figurines would also make a good addition to dioramas for class assignments at school. This set includes three deer figurines: a buck with horns, a doe and a spotted fawn. Schleich also offers an entire line of forest wildlife families, including wolves and horses (sold separately).
Schleich Deer Family Figurine Set:Includes 3 deer figurinesAll figures are hand-paintedDeer figurine set promotes creativity and imaginative playParents can use these figurines to teach their young children about wildlife and the natural world around themSet includes a buck, a doe and a fawnFigurines can be used for dioramas at school, displays at home and more
551707326

value: This website is an American multinational retail corporation that operates a chain of hypermarkets , discount department stores, and grocery stores from the United States, headquartered in Bentonville, Arkansas.


text:
X-10 Powerhouse PS561 Personal Security Console + Voice Dialer NICE | eBay
Details about X-10 Powerhouse PS561 Personal Security Console + Voice Dialer NICE See original listing
X-10 Powerhouse PS561 Personal Security Console + Voice Dialer NICE Photos not available for this variation
Sell one like this	More chances to get what you wantFeedback on our suggestionsX10 Powerhouse X-10 Voice Dialer Security Console- Model PS561$29.99 X10 Powerhouse X-10 Voice Dialer Security Console Model PS561 & REMOTE SH624$43.99Free shipping X10 Powerhouse X-10 Personal Security Console Voice Dialer PS561 Base Only $48.39Free shipping X-10 Powerhouse Voice Dialer Security Console Base Dialer Model PS561$23.75Free shipping X10 Powerhouse X-10 Voice Dialer Security Console (Base Only) - Model PS561$36.54+ $6.88 X-10 Powerhouse Voice Dialer Security Console Base Dialer Model PS561$50.00Free shipping X-10 Powerhouse Voice Dialer Security Console Model PS561$35.00+ $9.00 X10 Powerhouse Voice Dialer Home Security Console Model PS561 & REMOTE SH624$39.98Free shipping X10 Powerhouse X-10 Voice Dialer Security Console Model PS561 and Much More.$119.99Free shipping Description
eBay item number:280864160753
Model: ps561

value: This website is an American multinational e-commerce corporation based in San Jose, California, that facilitates consumer-to-consumer and business-to-consumer sales through its website.


text:
The Talk of the Tee: A Collection of Questions for Tigers, Hackers, and Every Golfer in Between book by Bret R Nicholaus, Paul Lowrie | 1 available editions | Alibris Books
He's always there, no matter what we do ... and he always knows best. Pay tribute to Dad with this wonderful lineup of books that are sure to please. Read More
He's always there, no matter what we do ... and he always knows best. Pay tribute to Dad with this wonderful lineup of books that are sure to please. Read Less
ISBN-13: 9780740700415
ISBN: 0740700413
Alibris ID: 13889017978
Very Good. 0740700413 Thousands of Happy Customers! |0.6.
Alibris ID: 14287047010
Alibris ID: 14629287101
Alibris ID: 14390412095
New. Hardcover w / dustjacket. NEW. DJ fine. Stored in sealed plastic protection. No pricing stickers. No remainder mark. No previous owner's markings. In the event of a problem we guarantee full refund. 1999. Hardcover w / dustjacket.
Alibris ID: 14390308261
Like New. Hardcover w / dustjacket. Like new; no internal markings; has only lost its Brand New shine. No pricing stickers. No remainder mark. DJ is like new. Stored in sealed plastic protection. In the event of a problem we guarantee full refund. 1999. Hardcover w / dustjacket.
Alibris ID: 14390324793
Very Good. Hardcover w / dustjacket. Near Fine condition; edges, corners, and covers of book show very minor wear. No underlining; no highlighting; no internal markings. No pricing stickers. No remainder mark. DJ is Near Fine. Stored in sealed plastic protection. In the event of a problem we guarantee full refund. 1999. Hardcover w / dustjacket.
Alibris ID: 13959580363
Alibris ID: 13986576883
Alibris ID: 10982753362
Fine. 0740700413 First edition. Fine in fine dust jacket. Free tracking USA. Quality, Value, Experience.
Alibris ID: 14461845468
1999, Andrews McMeel Publishing, Kansas City

value: This website is is an online store that sells new books, used books, out-of-print books, rare books, and other media through an online network of independent booksellers.


text:
(1947-05-23) May 23, 1947 (age 68)
In addition to his research, writing, and teaching, Porter serves as an advisor to business, government, and the social sector. He has served as strategy advisor to numerous leading U.S. and international companies, including Cater

value: This website is the English-language edition of the free online encyclopedia Wikipedia. It was founded on 15 January 2001 as Wikipedia's first edition and, as of October 2021, has the most articles of any edition, at 6,412,521.


text: $5.00 - $6.00 Hanes Men's Comfortblend EcoSmart Jersey Polo 4.0 stars (333) ratings Try unlimited 2-day shipping FREE for 30 days See details | Sign up Free shipping on orders over $50 Best Seller $5.92 Was $8.96 Save $3.04 Fruit of the Loom Boys' White T-Shirt, 5+3 Bonus Pack Try unlimited 2-day shipping FREE for 30 days See details | Sign up Free shipping on orders over $50 Best Seller $0.99 Straight Talk Bring Your Own Phone CDMA Activation Kit (4G LTE) 4.0 stars (205) ratings Try unlimited 2-day shipping FREE for 30 days See details | Sign up Free shipping on orders over $50 Free store pickup 1 2 3 4 5 6 25 Next Showing 40 of 8,332,722 results Departments Home Home Improvement Electronics Office Auto & Tires Sports & Outdoors Seasonal Baby Beauty Books Cell Phones Clothing Food Gifts & Registry Health Household Essentials Jewelry Movies & TV Music Party & Occasions Patio & Garden Pets Pharmacy Photo Center Toys Video Games See all Departments Shipping & Pickup Show all Ship to Home FREE Pickup FREE Pickup Today Special Offers Rollback Special Buy Clearance Reduced Price Only at Walmart Price Shown at Cart New As Advertised Price at Checkout See more special offers Brand Samsung Better Homes and Gardens Mainstays Graco Fisher-Price LEGO Apple Ozark Trail Faded Glory VIZIO Sony Baby Trend HP Danskin Now Disney My Life As Barbie Intex Coleman Hanes See more brands Price $ to $ Go 0 - $10 $10 - $20 $20 - $50 $50 - $100 $100 - $150 $150 - $200 $200 - $250 $250 - $500 $500 - $750 $750 - $1,000 $1,000 - $1,250 $1,250 - $1,500 $1,500 - $2,000 $2,000 - $2,500 $2,500 - $3,000 $3,000+ See more prices Color Black Blue White Multi Gray Red Pink Purple Brown Green Beige Silver Yellow Orange Gold Clear Other Assorted Off-White Bronze See more colors Retailer Walmart.com UnbeatableSale Wayfair.com Wayfair Best Choice Products Overstock Zoro Vision Graphics Tasharina Corp ShopLadder New Ocean Enterprises Inc The Poster Corp Beach Audio Inc Christmas Central Hobby Warehouse Build.com Gem Stone King Perf-Moto Discount Merchant Jewelry Pot See more retailers Customer Rating 4.0 stars & Up 3.0 stars & Up 2.0 stars & Up 1.0 stars & Up Compute- app-11031075-2-50864072, DC- prod-dfw4, ENV- prod-a, Ver- 44.0.0, SHA- 4ccde6630b54173e13bf9646401e57ff2c4cccd4, Log- c7d47389-5645-1561d60efb9000 Site Information Be the first to save! Email Address Sign up Privacy policy Stay connected Mobile apps Help Feedback MoneyCenter Privacy & security CA privacy rights Terms of use Financial services Walmart MoneyCenter Walmart Credit Card Apply now Manage card account Product Care Plans Walmart Pay Get to know us About Walmart.com Corporate Suppliers Marketplace Careers @Walmartlabs Walmart.com Terms of use About our ads Affiliate program CA privacy rights Privacy & security Customer service Returns policy Product recalls Int’l customers Tax exempt program Contact us Feedback Store pickup In the spotlight Expand Baby Cribs Strollers Diapers Baby feeding Car seats Expand Electronics Cut the Cable Computers TVs iPads & tablets Expand Fitness Exercise machines Vitamins Ellipticals Treadmills Fitbit Expand Keep cool Air conditioners Fans Swimming pools Pool toys Expand International sites Argentina Brazil Canada Chile China Japan Mexico United Kingdom © Walmart Stores, Inc. To ensure we’re able to help you as best we can, please include your reference number: Ref:


text:
Miadora Sterling Silver 1/10ct TDW Diamond Solitaire Ring (H-I, I2-I3) Today $115.99 (8) Miadora Round-cut Diamond Accent High-polish Sterling Silver Ring Sale $41.24 Was $54.99(109) Miadora Sterling Silver Cubic Zirconia Engagement Ring Sale $31.44 Was $36.99(25) Sterling Silver or Rose Plated Diamond Accent Heart Ring Sale $42.07 Was $49.49(7) Miadora Sterling Silver 1/6ct TDW Diamond Solitaire Ring (H-I, I2-I3) Today $153.99 (9) Miadora Sterling Silver 1/4ct TDW Black and White Diamond Ring Set (H-I, I3) Sale $71.24 Was $94.99(31) 14k White Gold 1/4ct TDW Princess Cut Diamond Solitaire Ring (H-I, I1-I2) Today $399.99 Compare $411.99 Save 3% (14) Miadora Sterling Silver 1/6ct TDW Diamond Ring (H-I, I2-I3) Today $135.99 (2) Sterling Silver 'A Promise Kept Forever' Engraved Diamond Ring Today $49.99 Miadora Sterling Silver Diamond Criss Cross Fashion Ring Sale $62.04 Was $72.99(30) 14k White Gold 1/4ct TDW Certified Princess Cut Diamond Ring (H-I, I1) Sale $365.49 Was $429.99(23) DB Designs Sterling Silver 1/6ct TDW Diamond Round Promise Ring (I-J, I2-I3) Sale $26.34 Was $30.99 Miadora Sterling Silver 1/5ct TDW Diamond Ring (G-H, I2-I3) Sale $152.99 Was $203.99(1) Miadora Sterling Silver 1/3ct TGW White Sapphire and Diamond Accent Ring Sale $50.99 Was $59.99(34) 10k White Gold Diamond Accent Promise Ring (K, I2) Today $134.99 Compare $237.15 Save 43% (2) Miadora Sterling Silver 1/10ct TDW Diamond Bridal Ring Set (H-I, I2-I3) Sale $92.79 Was $115.99(1) Sterling Silver 'A Promise is Forever' Diamond Heart Promise Ring Today $44.49 (2) Cambridge Sterling Silver 1/6ct TDW Diamond Promise Ring Today $118.99 Next Sponsored Links What's This?
http://www.overstock.com/Jewelry-Watches/Miadora-Sterling-Silver-Diamond-Accent-Solitaire-Ring/5624529/product.html?recSet=24c092ba-42ee-479c-91df-83a99e088b75

value: This website is an American internet retailer selling primarily furniture headquartered in Midvale, Utah, near Salt Lake City.


text:
Peterstone Court: 2017 Room Prices, Deals & Reviews | Expedia
Mid-Wales •
1-800-238-0767 Expedia.com • Hotels • Europe • United Kingdom • Wales • South Wales Hotels • Peterstone Court, South Wales
Peterstone Court, South Wales, current page
1 Yewtree Cottage
Switch main photo to photo of 24/80 In-Room Kitchen
Switch main photo to photo of 26/80 Bathroom
Switch main photo to photo of 27/80 Pool
Switch main photo to photo of 28/80 Pool
Switch main photo to photo of 29/80 Pool
Switch main photo to photo of 30/80 Outdoor Pool
Switch main photo to photo of 31/80 Outdoor Pool
Switch main photo to photo of 32/80 Spa
Switch main photo to photo of 33/80 Spa
Switch main photo to photo of 34/80 Spa
Switch main photo to photo of 35/80 Spa
Switch main photo to photo of 36/80 Spa
Switch main photo to photo of 37/80 Nail Salon
Switch main photo to photo of 38/80 Nail Salon
Switch main photo to photo of 39/80 Property Amenity
Switch main photo to photo of 41/80 Miscellaneous
Switch main photo to photo of 42/80 Miscellaneous
Switch main photo to photo of 43/80 Miscellaneous
Switch main photo to photo of 44/80 Miscellaneous
Switch main photo to photo of 49/80 Restaurant
Switch main photo to photo of 50/80 Restaurant
Switch main photo to photo of 61/80 Business Center
Switch main photo to photo of 62/80 Interior Detail
Switch main photo to photo of 63/80 Interior Detail
Switch main photo to photo of 64/80 Property Grounds
Switch main photo to photo of 65/80 Property Grounds
Switch main photo to photo of 69/80 Exterior
Switch main photo to photo of 70/80 Exterior
Switch main photo to photo of 71/80 Exterior
Switch main photo to photo of 72/80 Exterior
Switch main photo to photo of 73/80 Exterior
Llangorse Lake - 2.7 miles
Brecon Cathedral - 3.1 miles
Get an overview of this hotelLuxury Brecon inn in Brecon Beacons National Park with free parking Popular property highlights Free self parking
Located in Brecon Beacons National Park, this luxury inn is 4.4 mi (7.1 km) from Brecon Golf Club and 10 mi (16.1 km) from Pen y Fan. Brecon Beacons National Park and Cyfarthfa Park and Museum are also within 25 mi (40 km). Location
A restaurant, an outdoor pool, and a health club are available at this inn. Self parking is free. Additionally, a bar/lounge, a spa tub, and a sauna are onsite. Room Amenities
All 12 rooms offer flat-screen TVs with DVD players, plus free newspapers and hair dryers. Room service, coffee makers, and phones are among the other amenities available to guests. Information missing or incorrect? Tell us!Opens in a new window Select to view moreAbout the Property Tab 1 of 2 selectedSelect to viewGuest Reviews Tab 2 of 2 Peterstone Court
In addition to an outdoor pool, Peterstone Court provides a health club, a spa tub, and a sauna. The inn offers a restaurant. A bar/lounge is on site where guests can unwind with a drink. This luxury inn also offers a rooftop terrace, spa services, and a library. Complimentary self parking is available on site. Total number of rooms - 12 Bar/lounge Conference space Tours/ticket assistance One meeting room Laundry facilities Rooftop terrace Luggage storage Dry cleaning/laundry service Library Health club Hair salon Outdoor seasonal pool Spa treatment room(s) Meeting rooms Garden Restaurant Safe-deposit box at front desk Free self parking Sauna Spa services on site Spa tub Steam room Outdoor pool Show all property amenities
Outdoor pool Rollaway/extra beds available Laundry facilities DVD player Parking
DVD player Air conditioning Phone Coffee/tea maker Hair dryer Iron/ironing board Desk Rollaway/extra beds available Flat-panel TV Room service Free newspaper In-room climate control (air conditioning) Where to Eat
Room service is available. Peterstone Court has a restaurant on site. Show dining options
A health club and complimentary bicycles are featured at the inn. An outdoor pool and a spa tub are on site. Other recreational amenities include a sauna. The recreational activities listed below are available either on site or nearby; fees may apply. Bicycle rentals nearby Free bicycles on site Hiking/biking trails nearby Show recreation options
Peterstone Court Brecon
Peterstone Court Inn
Peterstone Court Inn Brecon
Hotel Peterstone Court
Peterstone Court Hotel Llanhamlach, Wales
Crowne Plaza White Plains - Downtown Reviews
Una Hotels Rome Italy
Ellensburg Washington Destination Hotels
Nashville TN Starwood
Bar Hotel Cincinnati
Family Hotel Ogunquit Wells
Hotel Circle Best Western
Pet-friendly Hotel Kearney
Dessole Mirabello Beach & Village Hotel Reviews
Zachary Hotel Prices
Taylors Falls Hotel Prices
WoodSpring Suites San Angelo San Angelo
Pacuare Lodge Review
Driftin Sands By Kees Vacation Reviews
Cheap Flights from GRR to JAX
Flights from PHL to Reno
SAN to GIG Flights
TUL to MCO Flights
Torres Del Paine Flights
Flights GRB to MSP
Flights from PHL to Trinidad
Flights from AUS to Montego Bay
TLV to NCE One Way
Flights from Orange County to Redding CA
Flights Grand Island NE to Denver CO
Car Rentals in Fallon
Cheap Rental Cars Santa Teresa
Paris Day Trip with Seine River Cruise & Eiffel Tower Lunch - London
Statue of Liberty, Ellis Island & Battery Park with Pedestal Access

value: This website is an online travel agency owned by Expedia Group, an American online travel shopping company based in Seattle.


text:
Patent US7818115 - Procedure for determining a navigation solution of a navigation system with ... - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inPatentsA navigation solution of a navigation system with a Terrain Navigation Module is determined by a procedure including determining a supported position solution and the relative covered path between two height measurements, ascertaining a quality of each active supported position from each active supported...http://www.google.com/patents/US7818115?utm_source=gb-gplus-sharePatent US7818115 - Procedure for determining a navigation solution of a navigation system with a Terrain Navigation Module, as well as a navigation systemAdvanced Patent SearchPublication numberUS7818115 B2Publication typeGrantApplication numberUS 11/471,661Publication dateOct 19, 2010Filing dateJun 21, 2006Priority dateJun 22, 2005Fee statusPaidAlso published asDE102005029217B3, DE502006007620D1, EP1736733A1, EP1736733B1, US20070010939Publication number11471661, 471661, US 7818115 B2, US 7818115B2, US-B2-7818115, US7818115 B2, US7818115B2InventorsPeter Kreutz, Juergen Metzger, Bernd TaddikenOriginal AssigneeEads Deutschland GmbhExport CitationBiBTeX, EndNote, RefManPatent Citations (18), Non-Patent Citations (9), Classifications (17), Legal Events (2) External Links: USPTO, USPTO Assignment, EspacenetProcedure for determining a navigation solution of a navigation system with a Terrain Navigation Module, as well as a navigation system
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS4144571Mar 15, 1977Mar 13, 1979E-Systems, Inc.Vehicle guidance systemUS5991691 *Feb 20, 1997Nov 23, 1999Raytheon Aircraft CorporationSystem and method for determining high accuracy relative position solutions between two moving platformsUS6094607 *Nov 27, 1998Jul 25, 2000Litton Systems Inc.3D AIME™ aircraft navigationUS6208937 *Jul 29, 1998Mar 27, 2001Litton Systems Inc.Method and apparatus for generating navigation dataUS6218980May 5, 1987Apr 17, 2001Mcdonnell Douglas CorporationTerrain correlation systemUS6389354Jun 8, 2000May 14, 2002Bae Systems PlcTerrain navigation apparatusUS6453238 *Sep 15, 2000Sep 17, 2002Sirf Technology, Inc.Navigation system and method for tracking the position of an objectUS6480789 *Dec 4, 2000Nov 12, 2002American Gnc CorporationPositioning and proximity warning method and system thereof for vehicleUS6512976 *Apr 27, 2001Jan 28, 2003Honeywell International Inc.Method and system for terrain aided navigationUS6538581 *Aug 26, 1999Mar 25, 2003Bae Systems PlcApparatus for indicating air traffic and terrain collision threat to an aircraftUS6734808 *Jun 26, 2000May 11, 2004Honeywell International Inc.Method, apparatus and computer program products for alerting submersible vessels to hazardous conditionsUS6750815 *Aug 27, 2002Jun 15, 2004Honeywell International Inc.Method, apparatus, and computer program products for alerting surface vessels to hazardous conditionsUS7145501 *Sep 26, 2005Dec 5, 2006Honeywell International Inc.Methods and systems for measuring terrain heightUS7289906 *Apr 4, 2005Oct 30, 2007Oregon Health & Science UniversityNavigation system applications of sigma-point Kalman filters for nonlinear estimation and sensor fusionUS7305303 *Feb 25, 2005Dec 4, 2007Honeywell International Inc.Personal navigation using terrain-correlation and/or signal-of-opportunity informationUS20020188386 *May 7, 2002Dec 12, 2002Laurence DayGPS based terrain referenced navigation systemUS20050125141 *Dec 5, 2003Jun 9, 2005Honeywell International Inc.System and method for using multiple aiding sensors in a deeply integrated navigation systemUS20050273257 *Jun 3, 2004Dec 8, 2005Hager James RMethods and systems for enhancing accuracy of terrain aided navigation systems* Cited by examinerNon-Patent CitationsReference1D. E. Di Massa, et. al., Terrain-Relative Navigation for Autonomous Underwater Vehicles, IEEE, 1997, pp. 541-546.2 *Engineering productivity tools, Annex C-Convolution, 1999, Internet, pp. 1-4.3 *Engineering productivity tools, Annex C—Convolution, 1999, Internet, pp. 1-4.4Feng Qingtang, et. al., Terrain Aided Navigation Using PDAF, IEEE International Conference on Robotics, Intelligent Systems and Signal Processing, Oct. 2003, pp. 1063-1068.5 *G.S. Gordon, Navigation systems integration, Feb. 1997, IEEE, Airborne navigation systems workshop (digest No. 1997/169), IEE colloquium, pp. 6/1-6/17.6Jean Dezert, Improvement of Strapdown Inertial Navigation Using PDAF, IEEE Transactions on Aerospace and Electronic Systems, vol. 35, No. 3, Jul. 1999, pp. 835-856.7 *John Proakis, Exact distribution functions of test length for sequential processors with discrete input data, Jul. 1963, IEEE Transactions on information theory, vol. 9, issue 3, pp. 182-191.8 *Peters, M. A. G., Development of a TRN/INS/GPS integrated navigation system, Mar. 1992, IEEE, Position Location and Navigation Symposium, 1992. Record. 500 Years After Columbus-Navigation Challenges of Tomorrow. IEEE Plans '92., IEEE, pp. 202-208.9 *Peters, M. A. G., Development of a TRN/INS/GPS integrated navigation system, Mar. 1992, IEEE, Position Location and Navigation Symposium, 1992. Record. 500 Years After Columbus—Navigation Challenges of Tomorrow. IEEE Plans '92., IEEE, pp. 202-208.* Cited by examinerClassifications U.S. Classification701/518, 342/120, 340/947, 342/65, 342/123, 342/64, 342/357.52, 342/357.3, 342/357.77, 701/472, 701/509, 701/535, 701/448, 701/408International ClassificationG01C21/00Cooperative ClassificationG01C21/00European ClassificationG01C21/00Legal EventsDateCodeEventDescriptionSep 16, 2006ASAssignmentOwner name: EADS DEUTSCHLAND GMBH, GERMANYFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KREUTZ, PETER;METZGER, JUERGEN;TADDIKEN, BERND;SIGNING DATES FROM 20060824 TO 20060901;REEL/FRAME:018317/0444Apr 10, 2014FPAYFee paymentYear of fee payment: 4RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services

value: This website is a search engine provided by Google. Handling over 3.5 billion searches per day, it has a 92% share of the global search engine market.


text:
Words that end in ntodigital | Words ending in ntodigital
https://www.thefreedictionary.com/words-that-end-in-ntodigital
Dictionary, Encyclopedia and Thesaurus - The Free Dictionary 10,943,806,532 visitors served
Words that end in ntodigital
Found 1 words that end in ntodigital. Browse our Scrabble Word Finder, Words With Friends cheat dictionary, and WordHub word solver to find words that end with ntodigital. Or use our Unscramble word solver to find your best possible play! Related: Words containing ntodigital
17-letter words that end in ntodigitalSee also
17-letter words that end in ntodigital
Words that end in todigital

value: This website is an American online dictionary and encyclopedia that aggregates information from various sources.


text:
Shop iCanvas "Los Angeles California Skyline" by Michael Tompsett Gallery-Wrapped Canvas Print - Overstock - 30064368
iCanvas "Los Angeles California Skyline" by Michael Tompsett Gallery-Wrapped Canvas Print
34958891
Cityscapes, Typography and Symbols
1.5 In. X 40.0 In. X 26.0 In.
1PC6-18x12