On Tue, May 13, 2014 at 2:37 AM, Rik Cabanier <caban...@gmail.com> wrote:
> On Mon, May 12, 2014 at 10:15 PM, Joshua Cranmer 🐧 <pidgeo...@gmail.com > >wrote: > > > On 5/12/2014 7:03 PM, Rik Cabanier wrote: > > > >> *Concerns* > >> > >> The original proposal required that a platform must return the exact > >> number > >> of logical CPU cores. To mitigate the fingerprinting concern, the > proposal > >> was updated so a user agent can "lie" about this. > >> In the case of WebKit, it will return a maximum of 8 logical cores so > high > >> value machines can't be discovered. (Note that it's already possible to > do > >> a rough estimate of the number of cores) > >> > > > > The discussion on the WHATWG mailing list covered a lot more than the > > fingerprinting concern. Namely: > > 1. The user may not want to let web applications hog all of the cores on > a > > machine, and exposing this kind of metric makes it easier for > (good-faith) > > applications to inadvertently do this. > > > > Web applications can already do this today. There's nothing stopping them > from figuring out the CPU's and trying to use them all. > Worse, I think they will likely optimize for popular platforms which either > overtax or underutilize non-popular ones. > Can you please provide some examples of actual web applications that do this, and what they're exactly trying to do with the number once they estimate one? (Eli's timing attack demos don't count. ;-) > > 2. It's not clear that this feature is necessary to build high-quality > > threading workload applications. In fact, it's possible that this > technique > > makes it easier to build inferior applications, relying on a potentially > > inferior metric. (Note, for example, the disagreement on figuring out > what > > you should use for make -j if you have N cores). > > > Everyone is in agreement that that is a hard problem to fix and that there > is no clear answer. > Whatever solution is picked (maybe like Grand Central or Intel TBB), most > solutions will still want to know how many cores are available. > Looking at the native platform (and Adobe's applications), many query the > operating system for this information to balance the workload. I don't see > why this would be different for the web platform. > I don't think that the value exposed by the native platforms is particularly useful. Really if the use case is to try to adapt the number of workers to a number that will allow you to run them all concurrently, that is not the same number as reported traditionally by the native platforms. If you try Eli's test case in Firefox under different workloads (for example, while building Firefox, doing a disk intensive operation, etc.), the utter inaccuracy of the results is proof in the ineffectiveness of this number in my opinion. Also, I worry that this API is too focused on the past/present. For example, I don't think anyone sufficiently addressed Boris' concern on the whatwg thread about AMP vs SMP systems. This proposal also assumes that the UA itself is mostly contempt with using a single core, which is true for the current browser engines, but we're working on changing that assumption in Servo. It also doesn't take the possibility of several ones of these web application running at the same time. Until these issues are addressed, I do not think we should implement or ship this feature. Cheers, Ehsan _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform