<table><tr><td style="">bruns added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D22333">View Revision</a></tr></table><br /><div><div><blockquote style="border-left: 3px solid #8C98B8;
          color: #6B748C;
          font-style: italic;
          margin: 4px 0 12px 0;
          padding: 8px 12px;
          background-color: #F8F9FC;">
<div style="font-style: normal;
          padding-bottom: 4px;">In <a href="https://phabricator.kde.org/D22333#496544" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">D22333#496544</a>, <a href="https://phabricator.kde.org/p/davidedmundson/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;">@davidedmundson</a> wrote:</div>
<div style="margin: 0;
          padding: 0;
          border: 0;
          color: rgb(107, 116, 140);"><p>Kinda, you're summary missing a key part.<br />
 (the commit description is a bit poor)</p>

<p>This patch does the following:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">It does the search in the other thread. That creates and iterates every possible device. This is expensive as there are lots of potential devices. We fetch pretty much everything udisks knows.</li>
<li class="remarkup-list-item">From the given list we recreate the select few devices that are relevant. This is relatively cheap. It does still block as you point out, but now for a much much smaller set of objects compared to before.
<br /><br />
(on my laptop that's 56 devices created when searching, resulting in 8 useful devices).</li>
</ul></div>
</blockquote>

<p>Just for clarification:</p>

<p>On my system, <tt style="background: #ebebeb; font-size: 13px;">solid-hardware5 list</tt> returns 77 devices, but with the Predicate Filter I am down to 10, and this is filtered by the hotplug engine down to 7.</p>

<p>Half of the devices (32) are serial ports. These are returned by the udev backend, but when combined with the "Camera | PortableMediaPlayer" predicate, the udev backend returns an empty list and nothing is instantiated.</p>

<p>The enumeration in the udev backend, especially 'PortableMediaPlayer' has become much cheaper since <a href="https://phabricator.kde.org/D21379" class="remarkup-link" target="_blank" rel="noreferrer">https://phabricator.kde.org/D21379</a>.</p>

<p>The Udisks backend indeed returns to much, and unfortunately it creates a backend device for each block device, which implies a number of DBus roundtrips. But this would come down to a single DBus call when <a href="https://phabricator.kde.org/D19677" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">D19677</a> lands.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R120 Plasma Workspace</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D22333">https://phabricator.kde.org/D22333</a></div></div><br /><div><strong>To: </strong>apol, Plasma, davidedmundson, bruns<br /><strong>Cc: </strong>anthonyfieroni, bruns, plasma-devel, LeGast00n, jraleigh, fbampaloukas, GB_2, ragreen, Pitel, ZrenBot, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart<br /></div>