From mboxrd@z Thu Jan 1 00:00:00 1970 From: davem@davemloft.net (David Miller) Date: Tue, 14 Oct 2014 12:30:05 -0400 (EDT) Subject: [PATCH V4 1/6] mm: Introduce a general RCU get_user_pages_fast. In-Reply-To: <20141014123834.GA1110@linaro.org> References: <20141013114428.GA28113@linaro.org> <20141013.120618.1470323732942174784.davem@davemloft.net> <20141014123834.GA1110@linaro.org> Message-ID: <20141014.123005.1217065336505722315.davem@davemloft.net> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org From: Steve Capper Date: Tue, 14 Oct 2014 13:38:34 +0100 > On Mon, Oct 13, 2014 at 12:06:18PM -0400, David Miller wrote: >> From: Steve Capper >> Date: Mon, 13 Oct 2014 12:44:28 +0100 >> >> > Also, as a heads up for Sparc. I don't see any definition of >> > __get_user_pages_fast. Does this mean that a futex on THP tail page >> > can cause an infinite loop? >> >> I have no idea, I didn't realize this was required to be implemented. > > In get_futex_key, a call is made to __get_user_pages_fast to handle the > case where a THP tail page needs to be pinned for the futex. There is a > stock implementation of __get_user_pages_fast, but this is just an > empty function that returns 0. Unfortunately this will provoke a goto > to "again:" and end up in an infinite loop. The process will appear > to hang with a high system cpu usage. I'd rather the build fail and force me to implement the interface for my architecture than have a default implementation that causes issues like that.