On Tue, May 13, 2014 at 8:20 AM, Ehsan Akhgari <ehsan.akhg...@gmail.com>wrote:
> 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. ;-) > Eli's listed some examples: http://wiki.whatwg.org/wiki/NavigatorCores#Example_use_cases I don't have any other cases where this is done. Maybe PDF.js would be interested. They use workers to render pages and decompress images so I could see how this is useful to them. > > 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. > Why not? How is the web platform different? > 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. > As Eli mentioned, you can run the algorithm for longer and get a more accurate result. Again, if the native platform didn't support this, doing this in C++ would result in the same. > 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. > Can you provide a link to that? Are there systems that expose this to the user? (AFAIK slow cores are substituted with fast ones on the fly.) > 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. > How is this different from the native platform? > Until these issues are addressed, I do not think we should implement or > ship this feature. > FWIW these issues were already discussed in the WebKit bug. I find it odd that we don't want to give authors access to such a basic feature. Not everything needs to be solved by a complex framework. _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform