Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933481AbdCWKdc (ORCPT ); Thu, 23 Mar 2017 06:33:32 -0400 Received: from LGEAMRELO13.lge.com ([156.147.23.53]:50628 "EHLO lgeamrelo13.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932758AbdCWKdW (ORCPT ); Thu, 23 Mar 2017 06:33:22 -0400 X-Original-SENDERIP: 156.147.1.126 X-Original-MAILFROM: byungchul.park@lge.com X-Original-SENDERIP: 165.244.249.25 X-Original-MAILFROM: byungchul.park@lge.com X-Original-SENDERIP: 10.177.222.33 X-Original-MAILFROM: byungchul.park@lge.com From: Byungchul Park To: , CC: , , , Subject: [PATCH 0/8] sched/deadline: Return the best satisfying affinity and dl in cpudl_find Date: Thu, 23 Mar 2017 19:32:35 +0900 Message-ID: <1490265163-29981-1-git-send-email-byungchul.park@lge.com> X-Mailer: git-send-email 1.9.1 X-MIMETrack: Itemize by SMTP Server on LGEKRMHUB04/LGE/LG Group(Release 8.5.3FP6|November 21, 2013) at 2017/03/23 19:33:18, Serialize by Router on LGEKRMHUB04/LGE/LG Group(Release 8.5.3FP6|November 21, 2013) at 2017/03/23 19:33:18, Serialize complete at 2017/03/23 19:33:18 MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1601 Lines: 39 cpudl_find() is used to find a cpu having the latest dl. The function should return the latest cpu among ones satisfying task's affinity and dl constraint, but current code gives up immediately and just return fail when it fails at the test *only with* the maximum cpu. For example: cpu 0 is running a task (dl: 10). cpu 1 is running a task (dl: 9). cpu 2 is running a task (dl: 8). cpu 3 is running a task (dl: 2). where cpu 3 want to push a task (affinity is 1 2 3 and dl is 1). In this case, the task should be migrated from cpu 3 to cpu 1, and preempt cpu 1's task. However, current code just returns fail because it fails at the affinity test with the maximum cpu, that is, cpu 0. This patch set tries to find the best among ones satisfying task's affinity and dl constraint until success or no more to see. Byungchul Park (8): sched/deadline: Make find_later_rq() choose a closer cpu in topology sched/deadline: Re-define parameters of cpudl heapify functions sched/deadline: Add cpudl_maximum_dl() for clean-up sched/deadline: Factor out the selecting of suitable max cpu sched/deadline: Protect read of cpudl heap with a lock sched/deadline: Don't return meaningless cpu in cpudl_maximum_cpu() sched/deadline: Factor out the modifying of cpudl's heap tree sched/deadline: Return the best satisfying affinity and dl in cpudl_find kernel/sched/cpudeadline.c | 228 +++++++++++++++++++++++++++++++-------------- kernel/sched/cpudeadline.h | 9 ++ kernel/sched/deadline.c | 29 +++--- 3 files changed, 182 insertions(+), 84 deletions(-) -- 1.9.1